我对C(Linux Ubuntu)中套接字编程中的somaxconn一无所知。我搜索了几个站点,但所有这些都对我没有多大帮助。
listen(sockfd,SOMAXCONN);
这是否意味着同时收听最大没有。连接的插座?
#include <sys/socket.h>
int listen (int socket, int backlog);
backlog 参数为实现提供了一个提示,实现应使用该提示来限制套接字侦听队列中未完成连接的数量。实现可能会对积压施加限制并默默地减少指定的值。通常,较大的 backlog 参数值将导致侦听队列的长度更大或相等。实现应支持 backlog 的值
SOMAXCONN
,定义在<sys/socket.h>
.如果
listen()
使用小于 0 的 backlog 参数值调用该函数,则该函数的行为就像使用 backlog 参数值 0 调用它一样。backlog 参数为 0 可能允许套接字接受连接,在这种情况下,侦听队列的长度可以设置为实现定义的最小值。
如此处所见。
简而言之,积压是您希望在套接字上排队的最大连接数。这个队列在那里,因此您可以在其他人排队等待时处理来自客户端的连接,积压指定您希望这条线有多长。如果更多客户端尝试连接到您的服务器,而不是积压,这些连接将被丢弃。
SOMAXCONN
定义我的系统上listen()
允许传递的最大数量。128
您可以在手册页中阅读有关它的更多信息