我有一个连接到服务器的套接字客户端,等待从服务器发送文本行。
我打开连接:
$handle = fsockopen(MY_IP_ADDRESS,MY_PORT,$sockErrno,$sockErrStr);
stream_set_blocking($handle,1);
stream_set_timeout($handle,MY_SOCKET_TIMEOUT);
然后:
while (true) {
$inString = fgets($handle,256);
do some stuff with the received data...
}
一切正常。收到的消息之间没有特定的间隔。消息可能每秒钟到达几次或几分钟。
stream_set_timeout设置为60秒......如果没有收到任何消息,那么我只是循环并再次排队fgets。
偶尔,连接因某种原因而中断。
我希望能够检测到断开的连接,以便我可以开始尝试重新连接。
有没有办法检测断开的连接?当流超时发生时,我能检查一下会告诉我不再有连接吗?