我要做大响应规模的Winsock应用程序,简单来说就是服务器端同时和300个或者更多的客户端聊天,这样要监控大量的Socket,因为要保持长连接。想用重叠I/O来做,但手头资料有限,弄得不是很清楚,那个老大有这方面的资料或者做过这方面请给小弟看看,主要是用什么API函数以及用法

解决方案 »

  1.   

    我做过, 还写过一套函数库. 用的是重叠I/O+完成例程(completion routine)+APC调用. 做过这么一套东西后感觉编程难度上比完成端口稍微简单点(完成端口控制工作线程间同步太麻烦了, 某个socket两次收到数据可能是从两个线程触发的, 解决不同socket之间的共享冲突太复杂了, 一不小心就死锁, 而且很难调试), 不过代码量比完成端口多, 因为要自己写线程池中线程的调度, 因为可以指定某个socket使用某个线程, 所以多线程冲突方面比较容易避免.
      

  2.   

    可否提供参考学习?
    [email protected]