With the latest cvs, if you turn on chargen (port 19 tcp) and run this:
<?
$sock1 = socket_create (AF_INET, SOCK_STREAM, 0);
if($sock1 < 0) die(socket_strerror($sock1));
$res1 = socket_connect($sock1, '127.0.0.1', 19);
if($res1 < 0) die(socket_strerror($sock1));
$sock2 = socket_create (AF_INET, SOCK_STREAM, 0);
if($sock2 < 0) die(socket_strerror($sock1));
$res2 = socket_connect($sock2, '127.0.0.1', 19);
if($res2 < 0) die(socket_strerror($sock1));
$read = array($sock1,$sock2);
while($num=socket_select($read, $write=NULL, $except=NULL, NULL)) {
for($i=0; $i<$num; $i++) {
$msg = socket_read($read[$i],1024);
echo "[$i] ".strlen($msg)."\n";
}
}
?>
I am seeing that every now and then when I run it the output is:
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
[0] 1024
Sometimes it does work properly and it hops back and forth between the two
spewing sockets:
[0] 1024
[1] 1024
[0] 1024
[1] 1024
[0] 1024
[1] 1024
[0] 1024
[1] 1024
[0] 1024
[1] 1024
[0] 1024
[1] 1024
[0] 1024
[1] 1024
[0] 1024
[1] 1024
I would expect to always see it alternate between the two like this. Can
anybody reproduce/explain this?
-Rasmus
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php