我有一个问题。
我使用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时如何设置超时?
我的英语很糟糕。