【发布时间】:2012-04-05 07:39:54
【问题描述】:
我有一个 php 服务器正在监听 1 个 c# 客户端。
连接建立后,它会一直保持活动状态,直到客户端发送命令“quit”杀死 PHP 服务器。
但是当 c# 客户端在没有“退出”命令的情况下断开连接时(即:单击 windows 窗体中的关闭 (x) 按钮),服务器只会继续侦听,并且无法接收来自该客户端的任何其他连接。
有没有办法从服务器端(PHP)检查与客户端的连接是否仍然存在?
我的php服务器代码基于http://php.net/manual/en/sockets.examples.php的example1
如果有人有兴趣重现错误/错误行为,请粘贴示例 1 中的代码:http://php.net/manual/en/sockets.examples.php,通过 telnet 从局域网中的远程客户端连接,拔下客户端线... php 服务器将永远挂起,没有新连接被接受。
【问题讨论】:
标签: php sockets listener keep-alive