TServerSocket 能连多少TClientSocket(100分)

  • 主题发起人 主题发起人 feelingapple
  • 开始时间 开始时间
F

feelingapple

Unregistered / Unconfirmed
GUEST, unregistred user!
我的TServerSocket当连到60多个TClientSocket后,再连就连不上了,why!?
port=1024.
 
呵呵, 这是根据系统情况不同决定的, 系统资源多就可以多一些. 60个不少了:-)
 
不错,理论上没限制,就像WINDOWS能开多少窗口一样:-)
不过,资源用光了,没办法了:-(
 
一个socket连接就是一个线程, Windows中线程数也不是无限制的开, 这和
windows资源及CPU性能, 网络性能都有关系, 试试2个CPU + 100M网卡(或者
FDDI)的性能.
或者调整一下TServerSocket.ThreadCacheSize.
 
我用的是非阻塞模式!!
 
我记得在非阻塞模式下ServerSocket也是用线程来处理与Client的连接的!
 
今天听曹晓钢说系统对Socket连接的数量是有限制的。
 
还有这样的问题,我的程序可能也用这个方案,可得看看了
 
to SeaSky: 60多个应该没问题吧? 以前我用VB可以同时开500个!
 
TO cAkk ; 不好意思, 我也不太清楚这个问题,只是听说而已。 明天我问
一下Pegasus, 他应该有答案的。
 
我用TServerSocket 做了个试验,当挂了18个TServerSocket 时,出现系统缓冲区已满
的错误代码,这个系统缓冲区指啥?,Delphi4用的是Winsocket的1.1版,不知是否有关,若用VB可以连500个,可能不是系统资源不够.VB可以,DELPHI也应可以解决.
 
to feelingapple: 是"挂了18个TClientSocket "吧?
^^^^^^
60绝对应该没有问题,我们web server上有一个VC做的server,用来向用户
发送股票实时行情,程序自己的限制是200个并发用户,目前平均有80个并发
用户,一点没有问题.
我说VB能开500个,也仅仅是为了试验而已,没有真正的传送/接受数据,如果
真的用VB同时开500个来做应用,恐怕也不现实,试验结果仅仅是"没有出现
资源不够的问题".
退一步讲,如果我们以后真能"同时在线"就有500个用户,那我们早把server
升级到linux了.

to feelingapple: 你还是巴你的代码贴出来,大家看看,是不是写的有问题?
 
谢谢大家!
 
后退
顶部