我在 C# 中创建了一个 tcp 侦听器。我已将超时设置为 0,时间不受限制。如果听众和客户之间大约 50 个小时没有活动,例如周末,但不会断开连接。它死了
请建议我如何解决这个问题。
提前致谢。
我在 C# 中创建了一个 tcp 侦听器。我已将超时设置为 0,时间不受限制。如果听众和客户之间大约 50 个小时没有活动,例如周末,但不会断开连接。它死了
请建议我如何解决这个问题。
提前致谢。
路由器通常会在预设时间后终止空闲的 TCP 连接。如果您的连接是通过 Internet 进行的,则您无法控制。为了防止出现问题,以编程方式检测您的空闲连接并发送非常少量的信息,即byte[] { 0 };
每 5 分钟左右发送一次。
这不会增加任何开销,就好像连接处于活动状态一样,您不发送“保持活动数据包”。
另一种选择是使用`Socket.SetSocketOption'在底层套接字上设置 'KeepAlive' 选项。这应该执行相同的功能,但我总是发现自定义解决方案更可靠。