操作系统支持得listen数目,professional是5,server是200,如何更改?

vick 2005-05-17 10:21:33
socket中listen(socket s,int queuenum)
queuenum等待连接数,最大数目由操作系统限定了,如何更改这个数目?
在professional版本中限定了5,那么同时连接时,最多只有5个连接可以成功连接,如何更改?

好像可以修改sys文件或用其他方法,请各位指教!
...全文
138 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vick 2005-05-20
  • 打赏
  • 举报
回复
我要的就是

改变queuenum,侦听时同时可以晌应几个连接!

不过还是谢谢大家!
土著巫师 2005-05-20
  • 打赏
  • 举报
回复
1、侦听时同时可以晌应几个连接(queuenum),和操作系统最大可以支持多少个SOCKET(MaxConnections)是两个概念。
2、在不同的系统平台上操作系统可以支持多少个SOCKET的数目是不同的;通过修改注册表,重起机器就可以了。如下文:

Win9x :

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP

You will need to find the value called MAXCONNECTIONS. It may not actually exists, in which case you need to add it, its a string value. Set the value to the number you worked out earlier and no more.

For NT /W2k:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
You are looking for the MAXUSERPORT value this time, it *should* already be there, if not, add it. The values is a DWORD and should be set to the number you worked out. Be sure to take into account any other services you are running when you set this.

You will need to restart for these changes to take effect. For safety sake, you can export the keys you are altering before you make the change, then if things dont work out, a quick double click on the .reg file you exported and a reboot restores your system. (不要告诉我瞧不明白):

3、虽然你设置可能是个很大的值,实际工作时,真正工作的怎么样,和你程序的设计好坏以及操作系统的运行环境还有很大关系,比如说操作系统的句柄数,内存余量,带宽等等;如果是成千的并发连接,最好用服务器版的操作系统,版本不同在这时候差异是很大的。

祝你好运。
铖邑 2005-05-18
  • 打赏
  • 举报
回复
listen(socket s,int queuenum)中的queuenum指的是SYN请求已经到达但尚未进行ACK确认的队列最大个数,并不是已经创建TCP连接的最大客户数,楼主概念错误。
晨星 2005-05-18
  • 打赏
  • 举报
回复
第一,那个参数指定的不是“最大连接数”,而是“最大请求等待数”,你完全可以把accept接收到的socket暂存到一个队列中,等待其他线程一个一个慢慢处理,然后accept立刻去继续接收——只要两次accept之间几乎没有时间间隔,那至少请求队列就不致于塞满;
第二,2000 Professional 本来就不适和做高负载网络服务器的操作系统,它只是个适合个人桌面使用的操作系统,即使提供一点网络服务,5个最大请求等待数也够了,如第一条所说;
第三,对于2000 Server,200个、再加上多线程还不足以满足你们公司的业务量需求么?
FengSC 2005-05-18
  • 打赏
  • 举报
回复
关注,在其他系统里都可以很容易的调整这个值,steedhorse(晨星)的意见我不敢苟同,需求千奇百怪,做软件的人什么事都能遇到。既然在很多流行操作系统上都可以修改这个值,那就说明他确实有修改的必要。我知道win2000里有一个动态backlog的概念,但不知道是否与此有关。
vick 2005-05-17
  • 打赏
  • 举报
回复
没人回答?

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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