php set socket time out for fsockopen, set time out for fsockopen

PHP Socket No Comments »

Sometimes if a target host is unreachable by a socket connection it takes 60 seconds to know that the socket function cannot connect to the destination. This is when i am using fsockopen function to connect to a remote host. So i was wondering there should be a function to timeout according to our preference and found that stream_set_timeout could do that.

$fp = fsockopen("", 80);
if (!$fp) {
    echo "Unable to open\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
    stream_set_timeout($fp, 2);
    $res = fread($fp, 2000);
    $info = stream_get_meta_data($fp);
    if ($info['timed_out']) {
        echo 'Connection timed out!';
    } else {
        echo $res;

where the second parameter of stream_set_timeout is in seconds.

Entries RSS