【发布时间】:2013-05-17 09:31:01
【问题描述】:
我正在使用套接字将数据发送到可能没有响应的服务器。所以我试图通过在 SO 中使用这个解决方案来定义超时。
Make PHP socket_connect timeout
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 1, 'usec' => 0));
socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array('sec' => 1, 'usec' => 0));
这在建立连接并且服务器响应时间过长时有效。
但是当它无法创建连接socket_connect($socket, $addr, $port); 时,超时时间约为20秒。
为什么会发生 20 秒超时,如何强制连接创建在 1 秒后超时?
【问题讨论】:
-
usec 是微秒,你为什么设置为 0?
-
@RobertPodwika 因为我希望它精确到 1 秒和 0 微秒