On Wed, Dec 14, 2011 at 1:25 AM, Matijn Woudt <tijnema@xxxxxxxxx> wrote: > On Wed, Dec 14, 2011 at 12:11 AM, Mihai Anghel <mihaigrim1985@xxxxxxxxx> wrote: >> Hello, >> >> It appears to me that something is strange with the socket_select function. >> From what I understand the value of the fourth parameter, tv_sec, >> should block the execution of the script for that number of seconds. >> I tried this code : >> <?php >> >> error_reporting(E_ERROR); >> >> $serverSocket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); >> >> $result = socket_bind($serverSocket, "127.0.0.1", "20668"); >> >> $start = time(); >> >> while(true) >> { >> $reads = array($serverSocket); >> $writes = null; >> $except = null; >> $changes = socket_select($reads, $writes, $except, 5); >> $now = time(); >> echo $now - $start; >> echo "\n"; >> } >> >> and when I run it with php -q server3.php the ouput shows something >> like 0 0 0 0 0 1 1 1 1 1 2 2 2 2 etc so the script doesn't pause on >> socket_select until it returns. >> >> Cam somebody explain me what's happening ? >> > > It seems to me that your socket_select function is failing, maybe > because earlier code is failing. Check the return of socket_select > like this: > if ($changes === false) { > echo "socket_select() failed, reason: " . > socket_strerror(socket_last_error()) . "\n"; > } > > Cheers, > > Matijn Thanks for your suggestion, I reviewed the code and I saw that I was missing : socket_listen($serverSocket) . After adding this it worked like expected -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php