【发布时间】:2012-12-17 03:07:54
【问题描述】:
我有一个监听多个套接字的 PHP 套接字服务器。
在我的客户端上,如果我暂停机器,则不会向 PHP 服务器发送断开连接消息。如何确定哪个客户端仍处于连接状态,或获取这些断开连接事件?
在 PHP 中,我使用 socket_select 来监听我所有的套接字。
谢谢!
【问题讨论】:
-
如果机器突然停止,需要一段时间才能断开连接;当它确实发生时,它应该发出套接字准备好读取的信号,当你读取它时,读取的字节数为零。
-
“暂停机器”是什么意思? @Jack 如果“机器突然停止”,它要么发送一个 FIN,即 立即 被视为读取的零字节,或者它发送一个 RST,它立即被视为“对等方重置连接”,或者它什么也不发送,这被视为“一段时间”后的读取超时。
-
“如果'一台机器突然停止'它要么发送一个 FIN ...” - 让我停下来,你听不觉得奇怪吗? :) @EJP
-
也许这个链接:stackoverflow.com/questions/9085615/…可以帮助你
标签: php sockets network-programming disconnect