Re: Question about socket_select

From: Date: Tue, 13 Dec 2011 23:25:49 +0000
Subject: Re: Question about socket_select
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-316000@lists.php.net to get a copy of this message
On Wed, Dec 14, 2011 at 12:11 AM, Mihai Anghel <mihaigrim1985@gmail.com> 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

« previous php.general (#316000) next »