[英]About socket connection timeout in C++ (UNIX)
我一直在努力将一个15秒的超时时间放到套接字上以避免被阻塞。 所以我把它配置为非阻塞,然后使用选择功能,并且工作正常......当计算机连接到网络时!
如果计算机与网络断开连接(例如,如果关闭Wi-Fi信号,或者您移动了以太网插头),当我调用连接功能时,它会立即返回“网络无法访问”错误。
因为我有一个循环来重新连接它,如果这样的事情发生,它试图连接多次,所以我得到千兆字节的日志文件。
所以,我想要的是为它设置某种超时。 它实际上不是超时,但我希望它等待15秒,直到它再次尝试连接以避免此问题。 当我认为我在第1段中解释的设置超时时,我错了。 那怎么能这样做呢?
如果它是ENETUNREACH
你可以测试errno
并sleep
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.