用重叠IO模式做的SOCKET 服务器,由于采用了WAITFORMULTPLEOBJECT(),而这个函数一次只能等待64个OBJECT。那么就是说这种机制的服务器,同时只能处理64个CLIENT吗?

解决方案 »

  1.   

    如果只用一个线程,那么只能同时处理64个Socket或其他同步对象。
    如果要更多,用回调函数或者多线程,或者使用完成端口
      

  2.   

    用完成端口吧 I/O Completion Port
      

  3.   

    回调函数,可以看看侯杰的书《win32多线程设计》
      

  4.   

    并联WAITFORMULTPLEOBJECT()while(...)
    {
        WAITFORMULTPLEOBJECT()  // 一句检查64个句柄,注意等待时间必须设的短一些,或0
        WAITFORMULTPLEOBJECT()
        WAITFORMULTPLEOBJECT()
        ......
    }