winsock连接持续多长时间?

3
我有一个使用winsock连接到服务器的C++程序,用户需要在非常长的时间范围内(可能是数周而无需重新连接)定期向该服务器发送数据。
我找到了很多关于建立连接时超时的文档,但我想知道连接在建立后持续多久。连接会一直持续到程序关闭吗?我可以连接然后等待两个小时再发送数据吗?

只要网络保持稳定,当然可以。 - Brian Roach
直到下一个“补丁星期二” :) 如果没有“关键安全更新”,连接可能会永远保持打开状态,就像@BrianRoach所说的那样。 - Martin James
1个回答

3

在TCP中,没有明确的连接寿命限制。连接将持续到以下情况之一:

  • 任何一个端点(应用程序)关闭连接(实际上,连接可能仍处于半双工模式)
  • 中间实体决定终止连接(如防火墙、NAT等)

在“现实世界”中,互联网连接通常在一段时间后被强制关闭,特别是如果没有发送数据。此外,根据协议的不同,一些服务器拒绝无限期保持连接打开(例如http服务器)。

总之:没有通用的方法来发现连接的寿命。您完全掌握在防火墙、代理(如果适用)和服务器方面。

定期发送一些数据(如保持活动消息)通常有所帮助。这也有助于检测连接是否已被静默终止。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接