duanlei7101 2012-07-12 12:27
浏览 260

PHP Socket客户端 - 检测服务器断开连接

I have a socket client that connects to a server and waits for lines of text to be sent from the server.

I open the connection with:

$handle = fsockopen(MY_IP_ADDRESS,MY_PORT,$sockErrno,$sockErrStr);
stream_set_blocking($handle,1);
stream_set_timeout($handle,MY_SOCKET_TIMEOUT);

Then:

while (true) {
   $inString = fgets($handle,256);
   do some stuff with the received data... 
}

This all works fine. There is no particular interval between messages received. Messages may arrive several per second or not for several minutes.

The stream_set_timeout is set to 60 seconds... if no message has been received then I just loop around and queue the fgets again.

Once in a while, the connection is broken for one reason or another.

I want to be able to detect the broken connection so I can begin to attempt to reconnect.

Is there a way to detect a broken connection? Is there something I can examine when a stream timeout occurs that will tell me there is no longer a connection?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 求帮我调试一下freefem代码
    • ¥15 matlab代码解决,怎么运行
    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?