Re: Socket how to die if connection broken

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

 



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


[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