基于 IOCP 的局域网监控系统
摘 要本文介绍了一种在 WINDOWS 平台上比较成熟的 I/O 方法---完成端口,提出了通过使用 IOCP
机制和旁视列表技术建立网络服务器模型的方法,实现了利用为数不多的线程为成千上万的客户同时
提供网络服务,解决了大多数网络服务器连接大量客户端和处理大量数据时存在的问题,获得了极好
的性能和强大的扩展能力。文章给出了基于Windows 2000 平台的局域网监控系统中网络服务器的设
计与实现过程。
关键词 完成端口;旁视列表;网络服务器;VC++
1 引言
在局域网远程监控系统中,网络管理中心需要同时监控每个客户端计算机的运行情况,将远程监
控画面显示在管理中心的电脑屏幕上。网络服务器要求实现定时截获客户端计算机上的屏幕数据与正
在运行程序的数据,定时截取客户端屏幕图像,并将截获的数据和图像保存在数据库中等功能。在较
大型局域网中有几百上千个客户端,需要对大量的客户端数据进行处理。因此如何让网络服务器同时
为多个客户端服务,但又不丧失整体的性能成为开发的难点。本文采用了 I/O 完成端口、旁视列表等
技术,设计了一种高效的网络服务器,让此问题得到了有效的解决。
2 IOCP 机制
IOCP(I/O Completion Port 输入/输出完成端口)是一种能够合理利用与管理多线程的机制。该机制
使用完成端口,用一定数量的线程处理重叠 I/O(Overlapped I/O)的技术,帮助处理大量客户端请求
的网络服务问题,特别适合于开发网络服务器一类的应用程序,并可使系统的性能达到较佳状态。
IOCP 模型图如图 1 所示。