我正在使用套接字将数据发送到可能没有响应的服务器。所以我试图通过在 SO 中使用这个解决方案来定义超时。
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 秒后超时?