请问windows下socket开发,一个端口最多能同时监听多少个socket连接?

songq 2007-11-08 11:52:07
书上说是5个,那要是想同时支持50个客户的并发请求怎么办? 请教高手指点,谢谢
...全文
971 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
songq 2007-11-09
  • 打赏
  • 举报
回复
就是说比如服务端我用最大监听5个连接的,此时来了8个客户请求,那么有5个客户端可以正常连上来,而剩余的3个客户端程序有重试的机会,如果重试一定的时间仍然没有连接上,就断开,使这个思路吗
ostrich2fly 2007-11-09
  • 打赏
  • 举报
回复
MSDN:
Maximum length of the queue of pending connections. If set to SOMAXCONN, the underlying service provider responsible for socket s will set the backlog to a maximum reasonable value. There is no standard provision to obtain the actual backlog value.

我也觉得给client retry机会 会好一些
ccpaishi 2007-11-09
  • 打赏
  • 举报
回复
默认值是5个吧,最大连接50个也是应该可以的
star119119 2007-11-08
  • 打赏
  • 举报
回复
上说是5个,那要是想同时支持50个客户的并发请求怎么办? 请教高手指点,谢谢
==============================
同時處理???還是 什麽?

他是處理最近的五個連接請求,而不是只能連接 5個。

你當然可以連50個,只不過它是 5個5個那麽處理而已。

你是感覺不出來的。系統給你管理。你該咋農咋農
WizardK 2007-11-08
  • 打赏
  • 举报
回复
不是你看错了,就是这书误人子弟了
WizardK 2007-11-08
  • 打赏
  • 举报
回复
谁说只有五个?呵呵
jsphuang 2007-11-08
  • 打赏
  • 举报
回复
给client一个RETRY的机会.
Torch009 2007-11-08
  • 打赏
  • 举报
回复
监听,监听
songq 2007-11-08
  • 打赏
  • 举报
回复
to robertxiao:
按您的说法,针对一个端口的listen,最大值是5,或者更大一些比如是10,那么如果同时来了20个客户请求,怎么才能让他们都得到响应而不是被拒绝呢?
robertxiao 2007-11-08
  • 打赏
  • 举报
回复
楼主所所说的5个,应该是指listen队列的最大值(默认是5)。
对于同时支持多少连接与服务器有关,windows平台一般5000,而unix平台能达10000以上

listen(sServer, 5);
while (1)
{
socket sClient = accept(sServer, NULL, NULL);
}
songq 2007-11-08
  • 打赏
  • 举报
回复
to ouyh12345 ,对于超过64个连接的,只能用完成端口实现了吗
ouyh12345 2007-11-08
  • 打赏
  • 举报
回复
完成端口
songq 2007-11-08
  • 打赏
  • 举报
回复
哦,那就像楼上说的,即使最多是64, 如果有200个并发请求怎么办,还是有限制阿,64个连接被占用后,那剩下的那些请求就无法连上来了?
mr.zhoux 2007-11-08
  • 打赏
  • 举报
回复
默认是一个端口只能一个连接一个的,你想一个端口接收很多的连接需要使用select 模型或者i/o模型.
Torch009 2007-11-08
  • 打赏
  • 举报
回复
那是它设的5个,最多是64个

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧