重叠IO,开一个线程WaitForMultipleEvents,阻塞等待
和多线程的recv阻塞等待相比,都是阻塞在工作线程中,有什么明显的高效性呢

解决方案 »

  1.   

    单线程,多异步io..
    节约了线程context切换消耗/同步消耗.
      

  2.   

    WaitForMultipleEvents不需要内核态到用户态的一个切换吧。
      

  3.   

    使用重叠模型的应用程序通知缓冲区收发系统直接使用数据,也就是说,如果应用程序投递了一个10KB大小的缓冲区来接收数据,且数据已经到达套接字,则该数据将直接被拷贝到投递的缓冲区。而对应其它几种模型种(阻塞模式,select,WSAAsyncSelect, WSAEventSelect模型),数据到达并拷贝到单套接字接收缓冲区中,此时应用程序会被告知可以读入的容量。当应用程序调用接收函数之后,数据才从单套接字缓冲区拷贝到应用程序的缓冲区,差别就体现出来了。
      

  4.   


    数据已经到达套接字,则该数据将直接被拷贝到投递的缓冲区:
    这句话的意思是:
                   数据到 网络层的接收窗口后---越过套接字接收缓冲区---直接到程序中定义的buff,
    而其它模型是
                 数据到 网络层的接收窗口后---拷贝到套接字接收缓冲区---再拷贝到程序中定义的buff,是这样的吧?
      

  5.   

    http://hi.baidu.com/sc_wolf/blog/item/e3f6d35ca3699e45faf2c051.html