Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C+中的网络连接+; 在C++应用程序中(我没有写)它使用网络连接。 在循环中,总是检查连接是否仍然可用。 如果我拔掉局域网电缆,我的应用程序就会因为超时而失败。 我知道插座号码和连接信息。有没有办法知道这是网络错误?_C++_Sockets_Networking - Fatal编程技术网

C+中的网络连接+; 在C++应用程序中(我没有写)它使用网络连接。 在循环中,总是检查连接是否仍然可用。 如果我拔掉局域网电缆,我的应用程序就会因为超时而失败。 我知道插座号码和连接信息。有没有办法知道这是网络错误?

C+中的网络连接+; 在C++应用程序中(我没有写)它使用网络连接。 在循环中,总是检查连接是否仍然可用。 如果我拔掉局域网电缆,我的应用程序就会因为超时而失败。 我知道插座号码和连接信息。有没有办法知道这是网络错误?,c++,sockets,networking,C++,Sockets,Networking,拔下电缆本身并不一定是“网络错误”。如果TCP连接暂时无法达到TCP连接上设置的超时时间(在您的情况下是在套接字上完成的),则TCP连接可以很容易地在断开连接期间存活。因此,您可以将超时设置得更低,或者使用其他一些逻辑来测试底层链路(物理接口)的状态,但在实践中很少这样做,通常TCP超时对于大多数目的来说已经足够好了。为什么它对您的系统不够好?在Linux上,如果是tcp,您可以尝试使用/proc/net/tcp。您使用的是什么操作系统?因为我想检测电缆是否被拔出,以及其他情况,例如对等方关闭连

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

在Linux上,如果是tcp,您可以尝试使用/proc/net/tcp。您使用的是什么操作系统?因为我想检测电缆是否被拔出,以及其他情况,例如对等方关闭连接。这就是点-拔出电缆与对等方关闭连接的情况非常不同。在一种情况下,连接仍然有效/打开,而在另一种情况下,它不是。