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

PHP Socket Add 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("www.example.com", 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);
    fclose($fp);
 
    if ($info['timed_out']) {
        echo 'Connection timed out!';
    } else {
        echo $res;
    }
 
}

where the second parameter of stream_set_timeout is in seconds.

Leave a Reply

Entries RSS