我一直在努力为套接字设置 15 秒超时以避免它被阻塞。所以我将它配置为非阻塞,然后使用选择功能,并且工作正常......当计算机连接到网络时!
如果计算机与网络断开连接(例如,如果 Wi-Fi 信号关闭,或者如果您拔下以太网插头),当我调用连接函数时,它立即返回“网络无法访问”错误。
如果发生这种情况,我有一个循环让它重新连接,它尝试连接很多次,所以我得到了千兆字节的日志文件。
所以,我想要的是也为此设置某种超时。这实际上不是超时,但我希望它等待 15 秒,直到它再次尝试连接以避免此问题。当我认为我按照第 1 段中的解释设置的超时也可以解决这个问题时,我错了。那我该怎么做呢?
最佳答案
如果是 ENETUNREACH
,您可以测试 errno
和 sleep
。
关于c++ - 关于 C++ (UNIX) 中的套接字连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299375/