网络数据传输速度已经不仅仅依赖于带宽的增加,对软件系统提出了更高的要求。随着Windows 对新技术的支持,在现有带宽前提下,开发出更高系统资源利用率、更高数据吞吐量的网络服务程序成为可能。在开发TCP/IP 协议网络服务时,一般使用SOCKET 编程,为了对大量客户端同时响应,必定会创建大量的线程,但是线程是系统资源,它的数量是有限制的,而且在众多线程之间切换也浪费了许多CPU 时间,严重影响了系统的效率。为了解决这些问题,微软花了数年时间进行研究和测试的一种非常好的机制来支持这类服务,这种机制就被称为IOCP。但从目前的现状看,在使用IOCP编写代码的过程中会许多棘手的问题。而其中信息定位、系统资源限制、报文预处理这3 个问题最具代表性。对此微软专家也提供了相应的说明文档及简单的Demo 程序,但这些资料并没有提供上述问题的完美解答。一些专业开发专家也只专注于其项目特定应用,而且他们也有自身利益及版权的考虑,对上述问题不可能提供完整、实用的解决方法。在研究这些零碎资料基础上,下面将讨论这些问题的起因和解决办法。
 
IOCP 写服务程序时的关键问题研究
http://www.88dev.com/forum-viewthread-tid-184-fromuid-1.html