Re: Socket how to die if connection broken
| From: | chris at aquanuke dot com | 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:_________________________________________________________________ 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_hotmailnewsThis 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)) {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.// 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