套接字默认超时

伊万_波兹迪夫

主语 奇怪的是,我无法在 Windows 或 POSIX 的套接字参考文档中轻松找到它。

就这个问题而言,我指的是影响套接字 API 调用的任何超时,即控制 API 调用返回并返回错误的时间的任何值。所以,像 TIME_WAIT 这样的东西被排除在外,因为它只影响系统状态而不是程序的控制流。这个问题的灵感来自于关闭 unix 套接字上的kill socket.accept() 调用,其中 OP 声称accept会永远等待 - 我不相信。

  • AFAICS,有两个:用于接收和用于发送,它们不仅会影响send/ ,还会影响recv所有涉及接收或发送的 API,例如accept.

进一步来说:

  • 它是由某些规范强制执行的还是完全取决于操作系统供应商?
  • 主要操作系统1的默认值是多少?至少,数量级。
    • 如果在系统范围内可配置,它们存储在哪里(如果有很多可能性 - 来自内核/库存库的 POV)?

1例如 Windows、Debian、Red Hat、FreeBSD、Mac OS X、Android。

用户207421

如果您谈论的是 BSD 套接字 API 中的 API 操作或基于它构建的系统或与之类似的系统,那么接受、发送和接收默认超时是无限的。这是由 BSD Sockets API 和 Winsock 强制要求的。大多数实现甚至不允许您更改发送超时。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章