繁体   English   中英

如何确定套接字监听()积压参数的值?

[英]How to determine the value of socket listen() backlog parameter?

我应该如何确定用于侦听套接字的积压参数的内容? 简单地指定一个非常大的数字有问题吗?

Winsock Programmer's FAQ 中有一个很长的答案。 它详细说明了标准设置,以及在 NT 4.0 的修补程序中添加的动态积压功能。

我第二次使用 SOMAXCONN,除非您有使用短队列的特定原因。

请记住,如果队列中没有空间用于新连接,则不会发送 RST,从而允许客户端通过重新传输 SYN 自动继续尝试连接。

此外,backlog 参数在不同的套接字实现中可能具有不同的含义。

  • 多数情况下表示半开连接队列的大小,部分表示完成连接队列的大小。
  • 在许多实现中,backlog 参数将相乘以产生不同的队列长度。
  • 如果指定的值太大,则所有实现都会以静默方式将该值截断为最大队列长度。

文档

SOMAXCONN 的 backlog 值是一个特殊的常量,它指示负责 socket 的底层服务提供者将挂起连接队列的长度设置为一个最大的合理值。

作为对使用 boost asio 的任何人的警告,SOMAXCONN 值在 boost 中用作 5。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM