有人对这个有经验吗?我有一个Twisted应用程序。客户端连接到服务器。我添加了一个功能,如果一个客户端连接到服务器,但是已经有一个来自该IP地址的客户端在运行,则会断开新的客户端。
偶尔,我会关闭客户端计算机(或VM,准确地说),而不手动关闭Python程序。当我这样做时,很少但相当频繁地,服务器无法检测到任何断开连接。当计算机重新启动并尝试重新连接时,服务器坚持认为已经有来自该IP的连接。到目前为止,我找到的唯一解决方案是重新启动服务器。
可能是奇怪的网络问题导致断开连接没有完成吗?Twisted的bug?
我99%确定这不是处理断开连接的代码中的错误。我的代码设置了connectionLost
,每当连接丢失时都会调用它,包括大多数关闭计算机的情况,它要么记录一个字符串说明什么被断开了,要么在发生奇怪的事情时抛出异常。这些事情都没有出现在日志中。