<explain>
A simple socket-select case ^_^
<?php
$sock = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($sock, '127.0.0.1',5000);
socket_listen($sock,1024);
$all_sock[(int)$sock] = $sock;
while (true) {
$read = $write = $except = [];
$tv_sec = 5;
$tv_usec = 5000;
$read = $all_sock;
$changed = socket_select($read, $write, $except, $tv_sec, $tv_sec);
if (false == $changed)
print "[error]socket_select() failed
(" .socket_strerror(socket_last_error()) . ")\n";
if ($changed < 1)
continue;
foreach ($read as $rsock) {
if ($rsock === $sock) {
$client = socket_accept($sock);
$all_sock[(int)$client] = $client;
} else {$msg= socket_read($rsock, 400,PHP_NORMAL_READ);
if ($msg !== '') {
var_dump($msg);
}
}
}
}
socket_close($sock);