Re: [PHP] Question about socket_select
On Wed, Dec 14, 2011 at 1:25 AM, Matijn Woudt wrote: > On Wed, Dec 14, 2011 at 12:11 AM, Mihai Anghel > 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 : >> > >> 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
Re: [PHP] Question about socket_select
On Wed, Dec 14, 2011 at 12:11 AM, Mihai Anghel 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 : > > 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 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Question about socket_select
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 : http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php