我使用TCP连接时应该发送Keep alive数据包吗?

时间:2013-06-22 05:55:42

标签: networking tcp keep-alive

我的问题是,我已经创建了一个TCP连接,当它在没有传输任何数据大约1小时的情况下停留时,它已经与服务器断开连接,但它没有通知我,它已断开连接,我应该发送保持活动包到服务器?或者我应该从服务器发送保持活动包到客户端?或者我应该发送给两者?

2 个答案:

答案 0 :(得分:2)

是的,你应该。几天前我创建了一个TCP套接字/服务器应用程序,我遇到了同样的问题。我通过开始发送保持活动包来修复它。

如果您发送保持活动数据包,您的问题将会消失。

我听说有人说操作系统会为你发送keep alive包,我对此不是很熟悉,但发送keep alive包明确地为我工作

答案 1 :(得分:0)

  

它没有通知我它已断开连接

它不能。除了在下次尝试I / O时引入EOS或“连接重置”之外,没有办法可以做到这一点。

  

我应该发送keepalive数据包......

如果你有这个问题,是的。一般来说,可能不是。