当我连接到Unix命名套接字时,我可以在哪些条件下收到ETIMEDOUT?
如果服务器在N秒内没有接受(),那么Linux上的典型N是什么?
答案 0 :(得分:1)
如果服务器的操作系统在N
秒内未接受连接,则会发生这种情况。调用accept()
的服务器应用程序通常不相关,因为操作系统会自动执行3次握手,无论应用程序是否调用accept()
; TCP堆栈将挂起的连接排队,直到应用程序执行此操作(最多为积压限制)。
通常,只有在服务器物理关闭或网络出现通信错误时才会发生此超时。
我认为Linux上的默认值是20秒。