PHP Sockets - How to detect client disconnection?
| From: | Anthony Rasmussen | Date: | Sat, 06 Jan 2007 21:11:42 +0000 |
| Subject: | PHP Sockets - How to detect client disconnection? | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-246692@lists.php.net to get a copy of this message | ||
How do I detect a disconnected client from a socket resource?
In an infinite loop, I socket_read() every open resource that passes a socket_select().
As far as I know, the only way to detect if the client disconnected unexpectedly from their socket
resource is when socket_read() returns FALSE (which, during my testing, produced the warning:
"An established connection was aborted by the software in your host machine.").
However, socket_read() doesn't return FALSE on a disconnected client's socket resource
until I first attempt to socket_write() to that resource.
In brief pseudo code...
socket_create(AF_INET, SOCK_STREAM, SOL_TCP)
while (TRUE)
foreach (resource where (false === socket_select($arrayofresources, NULL, NULL, 0, 0))
if (socket_read() === false)
WON'T DETECT DISCONNECT UNTIL I FIRST socket_write()
I appreciate any support you offer and thank you for your time.
Best regards,
-Tony
_________________________________________________________________
Type your favorite song. Get a customized station. Try MSN Radio powered by Pandora.
http://radio.msn.com