socket 最大连接数的问题

zhanghengsdnu 2010-12-15 03:54:19
客户端connnect以后,服务器端用监听套接字accept,这里好像有一个最大64的问题,就是说最多64个客户端?那么如果服务器同时监听3个套接字,不同的客户端connect不同的监听套接字,最大是64还是64*3?
...全文
627 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
PG 2010-12-16
  • 打赏
  • 举报
回复
趴下来等老师讲解~!

PS:人家是想搞清楚,3个server线程是否能同时等待3组Events[max]
zhanghengsdnu 2010-12-16
  • 打赏
  • 举报
回复
谢谢楼上各位,我的问题可能表述有问题。假设一个服务器主线程采用每个客户新建一个子线程处理业务,那么如果只是监听一个套接字,写代码时判断已有的线程是否小于64,小于则新建否则不处理。现在服务器端监听了3个套接字,每个客户端都可以连接不同的套接字,那么此时服务器最多能开64个线程还是64*3个线程?
enic 2010-12-15
  • 打赏
  • 举报
回复
变量可以乱改,宏可是不能乱改的。。。
xengine-qyt 2010-12-15
  • 打赏
  • 举报
回复
最大连接数 除了你可以指定外 系统也有一个定义 系统这个定义可以支持最大数 你可以看看socket的SDK或者MSDN 这是个宏定义!
enic 2010-12-15
  • 打赏
  • 举报
回复
cEvents
[in] Indicator specifying the number of event object handles in the array pointed to by lphEvents. The maximum number of event object handles is WSA_MAXIMUM_WAIT_EVENTS. One or more events must be specified.



我一直很想知道这玩意儿的细节。。。

伯克利的select细节还知道一点
yutaooo 2010-12-15
  • 打赏
  • 举报
回复
LS,你不是已经说的挺细节了,还要什么细节呢?
enic 2010-12-15
  • 打赏
  • 举报
回复
奇怪,怎么就没有人挖出细节来说。。。
码农心语 2010-12-15
  • 打赏
  • 举报
回复
不是说一个侦听只有64个连接的问题,而是windows的select模型限制了只有同时可以对64个socket进行处理。
你用一个侦听,然后将accept得到的socket,分组开来处理,是可以超过64个连接的。

扽发,对于大量的并发连接,可以用完成端口模型来实现更多的并发连接。
yutaooo 2010-12-15
  • 打赏
  • 举报
回复

如果LZ说的是listen()中,第二个参数指定的值,那么64就没什么道理了。

操作系统中有2个连接的等待队列:已经完成3次握手,而没有被accept()的,已完成等待队列;和没有完成握手的,未完成等待队列。listen()中指定的是前一个。并且,当accept()发生作用后,又有新的资源被让出,所以可以继续建立连接。

因此,我只能假设LZ说的是WSASelect()的限制。我对winsock不太熟悉,对照Linux中的select()函数,这个的确有一个上限。但是,这基本不能认为是socket的限制,只能说采用的通信编程模型有一个限制。
elated 2010-12-15
  • 打赏
  • 举报
回复
这个参数是由listen指定的。并且因操作系统的不同有不同的最大值

int listen(int sockfd, int backlog) //backlog指定队列中最多可容纳的等待接受的传入连接数
maoxing63570 2010-12-15
  • 打赏
  • 举报
回复
应该是64*3,在windows网络编程中也说过,如果要多于64个,需要另外开线程来做
就想叫yoko 2010-12-15
  • 打赏
  • 举报
回复
看UNIX网络编程第一卷,有说这个问题
zhanghengsdnu 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhouzhangkui 的回复:]
你先说说 你用的什么模型?
[/Quote]
用的WSAEventSelect,谢谢。
失落的凡凡 2010-12-15
  • 打赏
  • 举报
回复
搬小板凳过来等老师讲课
周药师 2010-12-15
  • 打赏
  • 举报
回复
你先说说 你用的什么模型?

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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