linux - 什么时候发生套接字超时? (Unix)

标签 linux sockets unix timeout

当我连接到一个 Unix 命名套接字时,在什么情况下我可能会收到 ETIMEDOUT?

如果服务器在 N 秒内没有接受(),那么 Linux 上典型的 N 是多少?

最佳答案

如果服务器的操作系统在 N 秒内不接受连接,就会发生这种情况。服务器应用程序调用 accept() 通常不相关,因为操作系统会自动执行 3 次握手,无论应用程序是否调用 accept(); TCP 堆栈将挂起的连接排队,直到应用程序执行此操作(达到积压限制)。

因此通常只有在服务器物理停机或网络通信错误时才会发生此超时。

我认为 Linux 上的默认值是 20 秒。

关于linux - 什么时候发生套接字超时? (Unix),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39649630/

相关文章:

linux - 如何在 bash 脚本中用双引号传递参数

c - 是否可以仅使用 exec() 函数来实现内部 shell 命令(shell 内置命令)?

c - IFF_UP 和 IFF_RUNNING 有什么区别?

java - Java上的Socket连接,指定IP

C 编程 - 带参数的 Http POST 请求

unix - UNIX 中的/dev/tty 是什么?

linux - Shell 脚本中基于菜单的选择

Linux后台运行的应用程序

python - 在 python 中广播套接字服务器

unix - 如何转换为零字节文件?