Re: Socket how to die if connection broken

From: Date: Mon, 08 Oct 2007 18:54:46 +0000
Subject: Re: Socket how to die if connection broken
References: 1 2 3 4 5  Groups: php.general 
Request: Send a blank email to php-general+get-262925@lists.php.net to get a copy of this message
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@hotmail.com> To: <php-general@lists.php.net> Sent: Monday, October 08, 2007 7:43 PM Subject: RE: [PHP] Socket how to die if connection broken Remove the @ and see if you get any useful message.
From: chris@aquanuke.com To: stuttle@gmail.com CC: php-general@lists.php.net Date: Mon, 8 Oct 2007 19:04:45 +0100 Subject: Re: [PHP] 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@gmail.com> To: <chris@aquanuke.com> Cc: <php-general@lists.php.net> Sent: Monday, October 08, 2007 5:26 PM Subject: Re: [PHP] Socket how to die if connection broken chris@aquanuke.com 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

« previous php.general (#262925) next »