2

简短的问题将默认超时值从 72 秒
缩短到 5 秒是否有任何危险或陷阱?

背景
我在 VB.NET 中有一个客户端应用程序,在 Python 中有一个服务器,它们都在 Windows 7 上运行并监视活动连接/在检测到损坏的套接字时自行关闭。当客户端或服务器关闭时,所有逻辑都将起作用。如果从 PC 上拔下物理网络电缆,问题就会出现。在此事件之后,我的 socket.send() 超时并退出之前需要整整 72 秒。由于客户端是一个 UI,您可以想象它在意识到连接已死之前等待一分钟是多么烦人。

编辑1) 客户端 UI在超时事件期间
未被阻止。故障模式是连接指示在 72 秒内显示“已连接”,即使没有发送消息。

2)我每秒从客户端和服务器发送一次心跳消息。使用这些消息速率,如果我关闭任何一个应用程序,我会在 5 秒内看到连接失败。当我拔下网络电缆时,这个时间就消失了。这就是为什么我现在很茫然...

4

1 回答 1

0

如果您每秒发送一次心跳,但在 5 秒内没有收到心跳,则应考虑连接丢失。这基本上只是一个 UI 问题——你有信息,你只是没有报告它。

于 2012-07-25T22:10:34.860 回答