本帖最后由 oyljerry 于 2012-03-30 11:26:12 编辑

解决方案 »

  1.   

    IOCP就是一个异步的队列,就是把一个SOCKET关联到一个所谓的完成端口, 然后就向套接字投递读写请求
    这些请求不一定是立即完成的,所以你需要在自己的一个或者多个工作线程里等待完成端口的完成事件
    然后处理之,如果想屏蔽这些复杂性可以使用boost asio 让你更关注自己的业务逻辑 而不是纠结在IOCP
    的实现及其原理上。
      

  2.   

    所有的网络操作,都要投递了overlapped后才能在操作完成时通过GetQueuedCompletionStatus得到完成的状态
      

  3.   

    搞计算机的既然遇到问题肯定要解决嘛。。boost库我还没学呢。。还在上学
      

  4.   

    我的理解就是你创建的SOCKET由完成端口来监控你的收发状态!
      

  5.   

    IOCP其实理解成事件触发器就ok了。主要关注几个事件:accept, recv, send,并在此基础上扩展其他的事件,包括断线等。
      

  6.   

    IOCP是Windows下IO异步机制的牛逼做法你要想某个设备能够进行高效的IO操作 就把这个设备句柄和IOCP关联起来 在这个设备创建时加上FILE_FLAG_OVERLAPPED属性创建两倍CPU数目的线程来弄GetQueuedCompletionStatus IOCP的设计初衷是和线程池配合使用的