PHP fwirte()如何设置超时?

时间:2015-08-02 14:10:19

标签: php settimeout

我有一个问题。

我使用fsockopen连接服务器并且成功。

连接成功后可能会阻塞网络,因此,我想在使用fread和fwrite时设置超时。

当我发现某事时,我可以使用stream_set_timeout设置超时,

并由stream_get_meta_data检查。

$fs = fsockopen("127.0.0.1", 10008, $errno, $errstr, 1);
stream_set_timeout($fs, 5, 0);
read(1024,$fs);
function read($length, $fs)
{
    $read = 0;
    $parts = array();

    while ($read < $length && !feof($fs)) {
        $data = fread($fs, $length - $read);
        $status = stream_get_meta_data($fs);
        if ($status['timed_out']) {
            die("Stream Timeout!n");
        }
        $read += strlen($data);
        $parts []= $data;
    }
    return implode($parts);
}

现在,我想知道,如果stream_set_timeout可以在fwrite中工作吗?

并且,当我使用fwrite时如何设置超时?

我的英语很糟糕。

0 个答案:

没有答案