4.1.3 系统的运行环境
1.硬件环境
本系统采用基本的C/S结构,被控端和监控端对硬件没有什么特殊要求,由于整个系统运行在基于TCP/IP协议至上,因此两端的计算机必须都安装网卡并且能够正常工作。在经济条件允许的条件下,监控端应用采用高性能的机器配置,因为数据的处理和图片的显示都是在监控端完成的。由于本系统从总体上来说对机器的硬件配置要求不高,因此有着广泛的适用空间,这也是本系统的一个特别之处
2.软件环境
无论是被控端还是监控端都要求操作系统的版本达到WinNT/Win2000/WinXP以上。
4.2 遇到的难题及解决的办法
4.2.1 减少传输量
截取系统的当前屏幕图像信息是通过GDI提供的接口来实现的,通过该接口可以实现将屛幕的图像信息保留下来,进而可以以数据流的形式将被控端的屛幕信息发送到监控端进行重现,达到了实时査看的目的。但是经过这样处理得到的屏幕图像数据大小比较大,一个典型的Windows显示配置为1024*768,颜色数为256色,则一整幅屛幕的数据量为:1024*768*8=6.29M,如果每一次被控端都将一整幅屏幕都传送给控制端,这不但要占大量的网络带宽,同时也将影响控制端系统对其他正常任务的处理与响卑。由于每一个被控端都向监控端发送大量的图片数据,这样的数据流量会给网络造成很大的负担,容易造成网络拥塞,监控端不能及时得到有效的数据信息,达不到实时显示被控端屏幕的设计目标。
另一方面,计算机屛幕图像并不是在时时刻刻全部发生变化的,大部分时间里只有部分图像在变化,也就是说能够完全取得每一时刻被控端的实际屏幕图像信息对于控制端来说这些图像也不是完全必要的,因为相邻的两幅图像甚至更多的图像反映的有可能是被控端的同一个画面,对于这样的同一种状态只需要向监控端传送一次即可。
鉴于以上的问题本系统采取了分块屏幕采集方法,即将屛幕区域自上而下分成若干个矩形区域,同时在被控端的内存中文护一个由这些区域的图片而组成的链表,这就是上一次所截取到的屏幕图片。当定时器到时触发截取屛幕时,系统按这些小区域来截取屛幕,将得到的图片与上一次所截取到的图片逬行比较,只是将那些发生了变化的区域图片传送给控制端。这样做虽然增加了一些被控端的压力,但是可以大大的减少网络传输的信息量。
4.3 本章小结
本章对局域网监控系统的整体框架进行了详细介绍,并概要的介绍了各功能模块。最后提出了在实现本系统时所遇到的主要的难题:减少传输量。针对网络传输量过大的问题,本系统将屏幕分块进行截取,并只将变化了的小块屏幕传送给控制端,这样可以大大的减少网络的负载;为了提高系统的可扩展性,本系统采用面向对象的设计方法设计了一个消息引擎,其可将网络中传输的所有控制消息和数据封装成格式相同的消息。
5 系统实现
本系统以Windows 7 操作系统为开发平台,在Visual C++环境下开发了基于C/S模式的局域网监控系统。该局域网监控系统包括被控端子系统和控制端子系统两部分。本章将详细介绍被控端和控制端的具体实现。
5.1 控制端实现
控制端在结构上由两部分组成:网络控制端系统和控制端界面系统。网络控制端的主要作用是侦听作用,它由一个主线程和若干子线程构成,主线程负责创建子线程,一旦有被控端请求进行连接,则主线程就创建一个子线程与之连接,对被控端数据的各种处理工作均由子线程完成。控制端界面负责将指定IP的被控端实时信息,并捕捉对指定被控端的控制消息。控制端的主要功能包括: VC++局域网远程监控系统的设计与实现(8):http://www.youerw.com/jisuanji/lunwen_9599.html