RE: [PHP] Socket how to die if connection broken
| From: | Instruct ICC | Date: | Mon, 08 Oct 2007 18:43:46 +0000 |
| Subject: | RE: [PHP] Socket how to die if connection broken | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-262922@lists.php.net to get a copy of this message | ||
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