怎么管理几百个 SOCKET ?高性能服务器应使用 WINDOWS NT/2000 所支持的完成端口,这是一个 WIN32 下专用的异步 SOCKET IO 模型要注意些什么?强健的错误检查,多线程肯定是必需的,而且必需使用线程池,因为这种应用下每次都  CreateThread 也嫌慢了,最后给你的意见,根据你的应用做必要的安全实现

解决方案 »

  1.   

    管理不了几百个socket.我做过试验,socket同时只能连5个,注意同时。
      

  2.   

    szzy():
      保持稳定的同时连接数目肯定远不止5个。
      5个只是“同时”响应连接请求的默认值。
      

  3.   

    CAO,楼上的, 同时只能连 5 个。偶没测过, 不过肯定不止这个数。明天回去测, 我会将报告贴出
    exitwindows 解释得不错。
      

  4.   

    windows 2000 profession的accept 队列最多只能排5个,即如果有10个并发的客户同时提出连接请求,windows只能处理5个,其它的只能稍后再连。但是Socket的同时连接数则不只5个。
    Windows 2000 server和Advanced server则不止这个数,可以在Listen函数上指定。Microsoft在professional上做了限制,好让server版本多卖点钱。
      

  5.   

    用IOCP模式管理数千个连接不成问题,具体可看msdn上的文章:
    Writing Windows NT Server Applications in MFC Using I/O Completion Ports
      

  6.   

    刚才输入法不行,重启了一次。to drugplus(drugplus):WIN98 的 accept 队列微软限制了没有? 情况如何?
      

  7.   

    用CAsyncSocket ,自己写两个类,一个侦听,一个接收,异步模式的,就看你机器配置了。
      

  8.   

    关注
    我也有类似问题,需要管理很多socket, 我考虑采用完成端口模型,但我不熟悉。
    有什么好的想法,请EMAIL:[email protected]
      

  9.   

    linux系统好像有1024个socket的限制。不知道怎么解决,是重新配置内核吗?
      

  10.   

    win98的性能肯定不会比professional好。