C++中的网络连接

问题描述:

在一个C++应用程序中(我没有写)它使用网络连接。 在一个循环中,它总是检查连接是否仍然可用。 如果我拿出LAN电缆,我的应用程序只是因为发生超时而失败。 我知道套接字号码和连接信息。有什么办法知道这是一个网络错误?C++中的网络连接

+0

在Linux上,如果是TCP,你可以尝试/ proc/net/tcp –

+1

你在什么操作系统上? – littleadv

+0

Windows和Linux – gln

拔下电缆本身并不一定是“网络错误”。如果TCP连接暂时不足以达到TCP连接设置的超时时间,则TCP连接可以在断开连接时轻松生存,这是在您的情况下在套接字上完成的。因此,您可以将超时设置得更低,或者使用其他逻辑来测试底层链路(物理接口)的状态,但实际中很少这样做,并且通常TCP超时对于大多数用途来说已足够好。为什么它不够好?

+0

,因为我想检测到电缆被拔出,以及其他情况,例如通过对等方关闭连接。 – gln

+1

这就是要点 - 拔掉电缆是一个非常不同的情况,而不是由同伴关闭的连接。在一种情况下,连接仍然有效/打开,而在另一种情况下则不是。 –