1

我在 C# 中创建了一个 tcp 侦听器。我已将超时设置为 0,时间不受限制。如果听众和客户之间大约 50 个小时没有活动,例如周末,但不会断开连接。它死了

请建议我如何解决这个问题。

提前致谢。

4

1 回答 1

0

路由器通常会在预设时间后终止空闲的 TCP 连接。如果您的连接是通过 Internet 进行的,则您无法控制。为了防止出现问题,以编程方式检测您的空闲连接并发送非常少量的信息,即byte[] { 0 };每 5 分钟左右发送一次。

这不会增加任何开销,就好像连接处于活动状态一样,您不发送“保持活动数据包”。

另一种选择是使用`Socket.SetSocketOption'在底层套接字上设置 'KeepAlive' 选项。这应该执行相同的功能,但我总是发现自定义解决方案更可靠。

于 2013-05-15T21:03:07.880 回答