检测php fwrite中的早期失败

时间:2009-11-19 11:39:46

标签: php timeout

今天早些时候我注意到一些调用php fwrite失败,因为目标套接字处于混合状态。 SYN_SENT中存在大量连接,并且似乎没有作为故障返回。

如果x位没有通过线路传输,那么检测此问题的最佳方法是什么?如果x位没有通过线传输,则只需将连接超时?

1 个答案:

答案 0 :(得分:2)

我相信你正在寻找stream_set_timeout。一个例子:

stream_set_timeout($fp, 2);
fwrite($fp, "GET / HTTP/1.0\r\n\r\n");

您可以通过检查流的元数据来检查是否发生超时:

$info = stream_get_meta_data($fp);
// $info['timed_out'] == true : time-out has happened