我有一个使用winsock连接到服务器的C++程序,用户需要在非常长的时间范围内(可能是数周而无需重新连接)定期向该服务器发送数据。
我找到了很多关于建立连接时超时的文档,但我想知道连接在建立后持续多久。连接会一直持续到程序关闭吗?我可以连接然后等待两个小时再发送数据吗?
我找到了很多关于建立连接时超时的文档,但我想知道连接在建立后持续多久。连接会一直持续到程序关闭吗?我可以连接然后等待两个小时再发送数据吗?
在TCP中,没有明确的连接寿命限制。连接将持续到以下情况之一:
在“现实世界”中,互联网连接通常在一段时间后被强制关闭,特别是如果没有发送数据。此外,根据协议的不同,一些服务器拒绝无限期保持连接打开(例如http服务器)。
总之:没有通用的方法来发现连接的寿命。您完全掌握在防火墙、代理(如果适用)和服务器方面。
定期发送一些数据(如保持活动消息)通常有所帮助。这也有助于检测连接是否已被静默终止。