Jam*_*tig 15 php sockets timeout
我想知道如何在socket_read通话中设置超时?它第一次调用时socket_read,它等待直到发送数据,如果在5秒内没有发送数据,我想关闭连接.任何帮助?我已经尝试SO_RCVTIMEO过没有运气了.
我正在创建一个套接字socket_create()并用它来监听连接,然后在连接时我会监听数据,然后用它做一些事情.超时命中时,我想运行socket_shutdown()然后socket_close().
Nic*_*ick 24
这设置了套接字的5秒超时.
socket_set_option($socket,SOL_SOCKET, SO_RCVTIMEO, array("sec"=>5, "usec"=>0));
Run Code Online (Sandbox Code Playgroud)
我做了一个socket_listen,然后我用 time()+2 和一个带有非块集和socket_read() 的 while 循环进行了手动超时。似乎工作正常。还有其他选择吗?
更新:我发现将套接字设置为非阻塞,然后使用 socket_listen 提供了我需要的超时。