Hi, Thursday, May 13, 2004, 6:57:14 AM, you wrote: RF> Hi,
RF> I have this code (below) that waits for particular data to come over RF> the socket ("ENX"), at which point it breaks out of the loop and does RF> other things. Presently, it will loop forever, until it receives RF> "ENX"—a good start—but I also need it to break-out if the loop runs RF> longer than five seconds. This is where I'm having a problem. It seems RF> that it is only reading once data comes over the socket, so it is stuck RF> on that first 'while' line ("while(($buf = RF> socket_read($socket,128,PHP_BINARY_READ)) !== false) {"). RF> $timer = time(); RF> while(($buf = socket_read($socket,128,PHP_BINARY_READ)) !== false) { RF> $data .= $buf; RF> $elapsed = time() - $timer; RF> if(preg_match("/ENX/", $data)) { RF> break; RF> } elseif ($elapsed > 5) { RF> echo "TOO LONG!\n"; RF> break; RF> } RF> } RF> Maybe set non-blocking / blocking socket is the answer? Only problem is RF> I can't find much [good] documentation describing what blocking and RF> non-blocking sockets are good for, etc. Any ideas? Thanks. RF> ...Rene RF> -- RF> PHP General Mailing List (http://www.php.net/) RF> To unsubscribe, visit: http://www.php.net/unsub.php Try doing this at the error point } elseif ($elapsed > 5) { echo "TOO LONG!\n"; break 2; //kill both loops } -- regards, Tom -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php