不知阻塞式和重叠那个效率高一些,我个人认为,在一个线程中处理一个阻塞式或重叠的socket,重叠应该低一些,因为它除了有WSAWaitForMultipleEvents等待函数之外还有一些有关事件设置的。
在一个线程中处理多个socket时,我个人认为重叠有优势,因为阻塞的在一个上阻塞后面的就不能立即响应了。不知那位高手对此有更多的研究,底层的,介绍一下子。

解决方案 »

  1.   

    单独讨论阻塞式和重叠的效率没什么意思,我认为这个应该放不同的应用环境中.
    要是用在服务器端在windows上IOCP将是你最好的选择,阻塞式将是最没效率的.
      

  2.   

    重叠的效率会高一些.
    阻塞程序流程:     
    |--接-收-数-据--|--处-理-数-据--|--接-收-数-据--|--处-理-数-据--|  重叠程序一种流程: 
    |--接-收-数-据--|--处-理-数-据--|--接-收-数-据--|--处-理-数-据--|   
                    |--接-收-数-据--|--处-理-数-据--|--接-收-数-据--|--处-理-数-据--|   设接收数据时间为Tr, 处理数据时间为Tp. 前者处理一个流程为Tr + Tp; 而后者是Max(Tr, Tp).
    顺便说一下,一般的项目大家没有必要考虑细节方面的效率,因为大部分的系统瓶颈不在于网络通信服务.