1、服务器是否可以支持winsock控件(数组),TCP协议10000个用户的在线连接?
2、服务器最多可以支持多少个线程?

解决方案 »

  1.   

    winsock控件(数组),我是使用LOAD动态生成的。1、10000个用户的在线连接,我并不使用一个应用程序,是若干个。2、服务器最多可以支持多少个线程?不知各位还有何高见??
      

  2.   

    如果要支持多人同时在线,通常的做法是采用分布式处理,负载平衡,线程池技术
    一个控件最多也只支持65535(理论值),而且操作系统也只支持这么多个客户端同时连接(理论值)
    WINSOCK控件实现的原理(据我猜测):在接受一个连接时,会用一个线程来处理,然后接收到数据会产生控件事件,把数据写到缓冲区,然后触发事件,最后你的应用程序就会收到数据了,一个普通的PC机最多最多可能支持2000个线程吧,不然会崩的,当然还有速度的问题了1.如果要面向个客户端连接,就采用线程池技术,也就是说:一般情况下同时连接的情形并不多见,大多都是来了一批人,同时又会走一批人,这样程序总是忙着去创建线程,销毁线程,解决这种问题的方法是,预创建一批线程,当有一个客户端连接的时候,就选用一个已经创建好的线程,置其标志为占用,当其离开的时候,就置其标志为空闲,就为其它连接做好了准备。
    2.一台机子的资源总是有限的,当同时有上千人在线的时候,不可能让一个CPU来处理,不然的话,一个机子的操作系统就会在上千个线程之间进行来回线换,这样系统开销和延迟都很大,是行不通的,就采用分布式处理,负载平衡技术,也就是说:当有一百人连接的时候,就分摊在十台计算机上,每台处理十个,有一千个连接时,每台处理一百个建议你看看"使用TCP协议开发C/S聊天程序,最大能够支持多少人? "
    这个帖子