请教WinSock编程当中,listen函数的第二个参数的确切含义?(70分)

  • 主题发起人 主题发起人 Archerfl
  • 开始时间 开始时间
A

Archerfl

Unregistered / Unconfirmed
GUEST, unregistred user!
在WinSock编程当中,在服务器端Socket这边有一个listen函数,原型如下:

int listen (SOCKET s, int backlog);

这里第二个参数backlog指什么呢?请具体解释一下它的确切含义,不要只是告诉我它是用于控制最大的

连接数。
我查看了一下英文API帮助,从解释看我感觉这个参数指的应该是最大的同一时刻连接数上限。不知道这

样理解对不对呢?假如是这样的话,是不是就是说只要不是并发的向Server端Socket发起连接,我们就可

以无限制的使用Client端的Socket呢?
 
是最大等待连接数目,也就是并发连接最大数...
你accept以后就减少一个,一般设置成5
 
function listen(s: TSocket; backlog: Integer): Integer; stdcall;
//监听某一指定套接口上连接请求的到来;
◆ s:指向select函数返回的TSocket指针;
◆ backlog:可以建立的最大连接数;
返值:成功返回0,否则返回SOCKET_ERROR;
 
楼上两位大侠说的意思跟我从有关资料上查来的相同。但是我拿不准这里的最大连接数到底是指什么情况呢?情况1. 在同一时刻访问Server端的Socket,仅仅允许最多达到该设置上限的连接数。情况2. 非并发情况,如张兄所言,只要我accept一次,就减少一个。
按照资料上的意思我理解应该是情况1。但是,似乎资料上也提到情况2的说法也是正确的。但是,我实际测试的结果发现好像无论我设置该数字为多大,可以无限制的accept来自Client端的连接,不知道这是为什么呢?
 
最多同时监听多少个连接,最大好象是5
 
To Archerfl:
他是指并发连接,你没有用那种环境测试,当然就看不到效果
 
多人接受答案了。
 
后退
顶部