【问题标题】:Detecting early failure in php fwrite检测 php fwrite 中的早期故障
【发布时间】:2009-11-19 11:39:45
【问题描述】:

今天早些时候,我注意到一些对 php fwrite 的调用失败,因为目标套接字处于混合状态。有许多连接卡在 SYN_SENT 中,并且似乎不会以失败的形式返回。

如果 x 位没有通过网络传输位,那么检测这一点并简单地使连接超时的最佳方法是什么?

【问题讨论】:

    标签: php timeout


    【解决方案1】:

    我相信您正在寻找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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      • 2018-01-23
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多