Re: Socket how to die if connection broken

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry if I change it to..

if (false === socket_write($sock, $buffer))

rather then $s

if (false === socket_write($s, $buffer))

ie

if (false === socket_write($sock, $buffer))
{
echo "connection broken";
socket_close($sock);
exit;
}

I dont get that error

Warning: socket_write() expects parameter 1 to be resource, null given in
/path/script.php on line 34

but just the original error msg

Warning: socket_write(): unable to write to socket [32]: Broken pipe in

Thanks




----- Original Message ----- From: "Instruct ICC" <instructicc@xxxxxxxxxxx>
To: <php-general@xxxxxxxxxxxxx>
Sent: Monday, October 08, 2007 7:43 PM
Subject: RE:  Socket how to die if connection broken



Remove the @ and see if you get any useful message.

From: chris@xxxxxxxxxxxx
To: stuttle@xxxxxxxxx
CC: php-general@xxxxxxxxxxxxx
Date: Mon, 8 Oct 2007 19:04:45 +0100
Subject: Re:  Socket how to die if connection broken

Hi Stut Ive tried your example but still cant get it to work.

----- Original Message ----- From: "Stut" <stuttle@xxxxxxxxx>
To: <chris@xxxxxxxxxxxx>
Cc: <php-general@xxxxxxxxxxxxx>
Sent: Monday, October 08, 2007 5:26 PM
Subject: Re:  Socket how to die if connection broken


> chris@xxxxxxxxxxxx wrote:
>> Hi I have a socket connection like so..
>>
>> $sourceip = '84.234.18.16'; // ip you want to bind to
>>
>> $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
>> socket_bind($sock, $sourceip);
>> socket_connect($sock, 'dac.nic.uk', 2043);
>>
>> if ($socket === false) {
>>    $errorcode = socket_last_error();
>>    $errormsg = socket_strerror($errorcode);
>>       die("Couldn't create socket: [$errorcode] $errormsg");
>> }
>>
>>
>> But if the socket connection gets broken it creates an error msg
>> Warning: socket_write(): unable to write to socket [32]: Broken pipe in
>> Warning: socket_write(): unable to write to socket [32]: Broken pipe in
>> Warning: socket_write(): unable to write to socket [32]: Broken pipe in
>>
>> That spills out for thousands and thousands of lines.
>>
>> What would I need for the script to die if the connection gets broken.
>
> This has nothing to do with opening the socket. When you are writing to
> the socket you need something like this...
>
> if (false === @socket_write($s, $buffer))
> {
>     // In here you know something is wrong. Use socket_last_error() to
>     // find out what and deal with it appropriately. Bear in mind that
>     // socket_write can fail for lots of reasons, not just a broken
>     // pipe so you need to check what error occurred before you can
>     // know what to do with it.
> }
>
> Note that you should never use the @ operator unless you are absolutely
> sure you're handling any potential errors correctly.
>
> -Stut
>
> -- > http://stut.net/
>
> -- > PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


_________________________________________________________________
Boo! Scare away worms, viruses and so much more! Try Windows Live OneCare!
http://onecare.live.com/standard/en-us/purchase/trial.aspx?s_cid=wl_hotmailnews
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux