日期:2014-05-20  浏览次数:20726 次

ServerSocket的问题
突然想起了一个问题,就是ServerSocket能支持多少个连接?1000?10 000?100 000?

------解决方案--------------------
要看操作系统的限制。
------解决方案--------------------
估计是有限制的
------解决方案--------------------
客户端的连接的连接请求由操作系统存储在一个先进先出的队列中,这个队列的最大长度由操作系统限定,一般为50.
当队列中的连接请求达到队列的最大容量时,服务器主机会拒绝新的连接请求。
------解决方案--------------------
windows为了防止被病毒感染后成为攻击源,故限定了(1)client只能有5000个连接;(2)任何一个socket连接close后,不会释放给其他用,要等120秒(有些os,如NT,限定为240秒)。这样,每秒最大发出请求就只有 5000 / 120 = 40 /s。
 
见附件说明(从Microsoft网站的资料)。
 
要修改windows注册表(!注意要先备份!),将连接数改为65000,释放等待时间为30秒(不能再降低,因为socket协议要求),这样每秒就可达 65000/30 = 2100。
即每秒可以有2100个连接!

以上是我们老总的答案!!!测试得出是正确的!

------解决方案--------------------
了解一下了.
------解决方案--------------------
学习
------解决方案--------------------
高手 谢了
------解决方案--------------------
在指定的端口上,只能有一个ServerSocket进行监听,但是可以与多个客户端进行连接。

探讨
比如说:XP操作系统在1234这个端口等待连接,最多能有多少个?

------解决方案--------------------
取决于你的操作系统,不同操作系统默认最大连接数是不同的,当然,操作系统的最大连接数是可以改的!
------解决方案--------------------
探讨
windows为了防止被病毒感染后成为攻击源,故限定了(1)client只能有5000个连接;(2)任何一个socket连接close后,不会释放给其他用,要等120秒(有些os,如NT,限定为240秒)。这样,每秒最大发出请求就只有 5000 / 120 = 40 /s。

见附件说明(从Microsoft网站的资料)。

要修改windows注册表(!注意要先备份!),将连接数改为65000,释放等待时间为30秒(不能再降低,因为socket协议要求),这样每秒就可达 65000/3…