当前位置: 技术问答>linux和unix
请问listen函数中最大队列的问题
来源: 互联网 发布时间:2016-12-07
本文导语: 我在linux下编译TCP协议的通信, 并在服务器端侦听时设置最大队列为2, listen(sks,2);(sks是服务器端的socket) 然后在客户端用connect去连接(这里skc是客户端的socket,adds是服务器端的地址), err=connect(skc,(struct sockaddr*)&ad...
我在linux下编译TCP协议的通信,
并在服务器端侦听时设置最大队列为2,
listen(sks,2);(sks是服务器端的socket)
然后在客户端用connect去连接(这里skc是客户端的socket,adds是服务器端的地址),
err=connect(skc,(struct sockaddr*)&adds,sizeof(struct sockaddr));
if(-1==err)
{
perror("connect error");
return -1;
}
我是这样运行的:
先在一个虚拟终端运行服务器端程序,然后在其他虚拟终端运行客户端程序,
可是我发现当超过2个终端运行客户端程序时,仍然不会出现错误,
可是服务器端的侦听最大队列为2,为什么超过了还不会报错呢?
listen函数的队列参数是什么意思呢?
并在服务器端侦听时设置最大队列为2,
listen(sks,2);(sks是服务器端的socket)
然后在客户端用connect去连接(这里skc是客户端的socket,adds是服务器端的地址),
err=connect(skc,(struct sockaddr*)&adds,sizeof(struct sockaddr));
if(-1==err)
{
perror("connect error");
return -1;
}
我是这样运行的:
先在一个虚拟终端运行服务器端程序,然后在其他虚拟终端运行客户端程序,
可是我发现当超过2个终端运行客户端程序时,仍然不会出现错误,
可是服务器端的侦听最大队列为2,为什么超过了还不会报错呢?
listen函数的队列参数是什么意思呢?
|
listen() 的第二个参数为等待连接队列的最大长度,其实这个的意思是说,在某一时刻同时允许最多有backlog个客户端要和服务器端进行连接,而不是像有些人想的那样,只能允许backlog个服务端与客户端进行连接。
即,是并发链接数
即,是并发链接数
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。