winsock - recv -网络连接问题

winsock - recv - Network Connection Issue

本文关键字:问题 连接 recv winsock 网络      更新时间:2023-10-16

在我的c++应用程序中,我在循环中使用recv函数。我想通过从recv函数中获得负值来识别网络连接问题。

我在测试中可以看到的一件事是,当我离开网线时,我可以等待~分钟,直到我可以看到我的应用程序得到这个负值。

你知道c++代码知道网络连接问题发生的持续时间是多少吗?这次我能行吗?

在仅tcp级别上没有相同的方法。这个选项的目的是SO_KEEPALIVE,但它是相当无用的。

实现应用程序级心跳,并在指定时间内没有接收到数据或心跳时标记套接字已断开(这几乎假设非阻塞模式,或至少是带超时的select(2)循环)。

这与c++代码无关。它与您正在使用的特定网络协议有关。假设它是TCP,它基本上是永久的。一个空闲的TCP连接没有与它相关联的数据包,并且可能永远不会检测到连接丢失。

如果要检测特定接口的丢失,请使用平台的接口状态监视功能。