基于iocp的局域网监控系统(1)

基于iocp的局域网监控系统(1)

ID:30640811

大小:19.15 KB

页数:10页

时间:2019-01-02

基于iocp的局域网监控系统(1)_第1页
基于iocp的局域网监控系统(1)_第2页
基于iocp的局域网监控系统(1)_第3页
基于iocp的局域网监控系统(1)_第4页
基于iocp的局域网监控系统(1)_第5页
资源描述:

《基于iocp的局域网监控系统(1)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、从本学科出发,应着重选对国民经济具有一定实用价值和理论意义的课题。课题具有先进性,便于研究生提出新见解,特别是博士生必须有创新性的成果基于IOCP的局域网监控系统(1)摘 要本文介绍了一种在WINDOWS平台上比较成熟的I/O方法---完成端口,提出了通过使用IOCP机制和旁视列表技术建立网络服务器模型的方法,实现了利用为数不多的线程为成千上万的客户同时提供网络服务,解决了大多数网络服务器连接大量客户端和处理大量数据时存在的问题,获得了极好的性能和强大的扩展能力。文章给出了基于Windows000平台的局域网监控系统中网络服务器的设计与实现过程。关键词完成端

2、口;旁视列表;网络服务器;VC++1引言在局域网远程监控系统中,网络管理中心需要同时监控每个客户端计算机的运行情况,将远程监控画面显示在管理中心的电脑屏幕上。网络服务器要求实现定时截获客户端计算机上的屏幕数据与正在运行程序的数据,定时截取客户端屏幕图像,并将截获的数据和图像保存在数据库中等功能。在较大型局域网中有几百上千个客户端,需要对大量的客户端数据进行处理。因此如何让网络服务器同时为多个客户端服务,但又不丧失整体的性能成为开发的难点。本文采用了I/O完成端口、旁视列表等技术,设计了一种高效的网络服务器,让此问题得到了有效的解决。IOCP机制IOCP(I/

3、OCompletionPort输入/输出完成端口)是一种能够合理利用与管理多线程的机制。该机制使用完成端口,用一定数量的线程处理重叠I/O(Overlapped课题份量和难易程度要恰当,博士生能在二年内作出结果,硕士生能在一年内作出结果,特别是对实验条件等要有恰当的估计。从本学科出发,应着重选对国民经济具有一定实用价值和理论意义的课题。课题具有先进性,便于研究生提出新见解,特别是博士生必须有创新性的成果I/O)的技术,帮助处理大量客户端请求的网络服务问题,特别适合于开发网络服务器一类的应用程序,并可使系统的性能达到较佳状态。IOCP模型图如图1所示。图1完成

4、端口工作模式完成端口模式要求创建一个Win32完成端口对象来对重叠I/O请求进行管理,并通过创建一定数量的工作者线程(WorkThread),来为已经完成的重叠I/O请求提供服务。其实,可以把完成端口看成系统维护的一个队列,操作系统把重叠I/O操作完成的事件通知放入该队列,由于是“操作完成”的事件通知,故取名为“完成端口”。一个完成端口被创建以后,可以和多个文件句柄进行关联(文件句柄可以是真正的文件句柄,也可以是Socket句柄或命名管道),并在关联后的句柄上进行重叠I/O操作。当I/O操作完成后,一个重叠I/O完成的事件通知就会被排在此端口的完成队列上,此

5、时,某个工作者线程将会被唤醒来为完成端口服务,执行特定的处理工作。一般来说,一个应用程序可以创建多个工作者线程来处理完成端口上的通知事件,工作者线程的数量依赖于程序的具体需要。数据库同步机制实现过程:图系统结构图整体系统安装初始,各个同步端的数据库初始化为一致。数据服务器维护各个同步端的SQL队列,不断检查是否有操作项,然后将各项操作依序发送至各个在线的同步端。在线同步端收到后,置入SQL队列,将SQL队列按操作发生时间先后排序课题份量和难易程度要恰当,博士生能在二年内作出结果,硕士生能在一年内作出结果,特别是对实验条件等要有恰当的估计。从本学科出发,应着重

6、选对国民经济具有一定实用价值和理论意义的课题。课题具有先进性,便于研究生提出新见解,特别是博士生必须有创新性的成果在线同步端将SQL队列中的各项操作依序执行并通知服务器执行的结果。服务器收到后将该项操作从该同步端的SQL队列中删除。某一在线同步端执行非读的SQL操作后,向服务器发送该操作,服务器将该操作放入除了此同步端外的其他同步端的SQL队列中,并放入历史SQL文件,然后转到第2步有新同步端注册入系统后,将从数据服务器下载历史SQL文件,并执行其中各项操作。某同步端选择注销,数据服务器删除该同步端的SQL队列。内存分配机制在该系统中内存的分配和释放比较频繁

7、,为了比较高效分配释放数据,采用一种称作LookasideList的数据结构。在该系统中用于单句柄数据和重叠操作数据的分配和释放。LookasideList的原理是在分配一块数据空间前,先查看回收链表中是否有数据空间指针,如果有则不需要调用系统的内存分配,直接使用回收链表中的该指针指向的数据空间,并将回收链表中该指针节点移除,当使用完数据空间后,也不必调系统的内存释放,而将该数据空间指针移入回收链表。在进程最终结束后才将回收链表中的所有指针指向的数据空间释放。从而大大减低程序在运行期的频繁内存分配和释放产生的开销。实现过程初始化课题份量和难易程度要恰当,博士

8、生能在二年内作出结果,硕士生能在一年内作出结果,特别

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。