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

----- Original Message ----- From: "Stut" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: <php-general@lists.php.net>
Sent: Monday, October 08, 2007 5:26 PM
Subject: Re: [PHP] Socket how to die if connection broken


[EMAIL PROTECTED] 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

Reply via email to