Due to popular request, here is an example of the new socket_select(): NOTE: ***This code does not do any error handling***
<?php error_reporting(E_ALL); function http_connect($addr) { $sock=socket_create(AF_INET, SOCK_STREAM, getprotobyname("tcp")); socket_connect($sock, $addr, 80); return $sock; } function http_send_get($sock, $page) { socket_send($sock, "GET /$page HTTP/1.0\n\n",strlen($page)+20,0); } function process_readable($sock, $key) { print "Reading Socket: $sock\n"; } function process_writable($sock, $key) { print "Writing to Socket: $sock\n"; } /* Connect to 4 websites */ $sock1=http_connect("www.yahoo.com"); $sock2=http_connect("www.cnn.com"); $sock3=http_connect("www.msn.com"); $sock4=http_connect("www.php.net"); /* Send a request only 2 and 4 */ http_send_get($sock2,""); http_send_get($sock4,""); sleep(1); $rfds=array($sock1, $sock2, $sock3, $sock4); $wfds=array($sock1, $sock2, $sock3, $sock4); $ret=socket_select($rfds, $wfds, NULL, 1); print "$ret Total sockets ready for action\n"; print count($rfds) . " Readable:\n"; array_walk($rfds, 'process_readable'); print count($wfds) . " Writable:\n"; array_walk($wfds, 'process_writable'); ?> -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php