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

Reply via email to