当我连接到一个名为Unix的Socket时,在什么情况下我可能会收到ETIMEDOUT?
如果在服务器在N秒内不接受accept()时发生这种情况,那么在Linux上典型的N是什么?
最佳答案
如果服务器的操作系统在N
秒内不接受连接,则会发生这种情况。调用accept()
的服务器应用程序通常不相关,因为无论应用程序是否调用accept()
,操作系统都会自动执行3次握手。 TCP堆栈会将待处理的连接排队,直到应用程序执行此操作为止(直至积压的限制)。
因此,通常仅在服务器物理故障或网络上发生通信错误时才会发生此超时。
我认为Linux的默认值为20秒。
关于linux - 套接字超时何时发生? (Unix),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39649630/