【发布时间】:2015-11-06 00:42:48
【问题描述】:
我正在使用 Vb.Net 和 VS 2013,根据我的研究,除非客户端向我的服务器发送 KEEP ALIVE 命令或发送一个字符串指示,否则无法检测客户端是否仍然连接该客户端将在它自己断开之前断开连接,因此我想知道是否有可能检测客户端是否与我的服务器断开连接?我的意思是如果客户端愿意将它自己从服务器?
这是this 的后续问题,我在问是否可以检测当前连接的客户端到我的服务器
编辑:我补充说,也可以通过告诉客户端发送一个命令字符串来指示它会在客户端实际断开连接之前自行断开连接。
【问题讨论】:
-
“根据我的研究,除非客户端向我的服务器发送 KEEP ALIVE 命令,否则无法检测到客户端是否仍处于连接状态”——这完全是错误的。一旦客户端断开连接,它们就会发送 TCP RESET 数据包,如果它们断开连接,它们只会在服务器端超时。可以使用 TCP KEEPALIVE 人为地缩短此超时时间。就是这样。
-
看来这个问题只是对您其他问题的改写:如果您可以检测到某人是否仍然连接,您可以检测到他们断开连接(通过反复检查他们是否仍然连接)。同样,如果您可以检测到它们断开连接,则可以知道它们是否仍然连接。您能否解释一下您需要哪些信息而不是其他问题的(正确)答案?
-
@jwg 我之前的问题说明是否可以检测到
current,而这个问题说明是否可以检测到willingly的客户。我认为这是两种不同的情况,对吧? -
@specializt 谢谢,是的,我忘了提到它也是可能的。请查看我的编辑。
标签: vb.net visual-studio-2013 tcp server