软件工程课程设计——远程监控系统.doc

上传人:文库蛋蛋多 文档编号:2885231 上传时间:2023-03-01 格式:DOC 页数:31 大小:1.67MB
返回 下载 相关 举报
软件工程课程设计——远程监控系统.doc_第1页
第1页 / 共31页
软件工程课程设计——远程监控系统.doc_第2页
第2页 / 共31页
软件工程课程设计——远程监控系统.doc_第3页
第3页 / 共31页
软件工程课程设计——远程监控系统.doc_第4页
第4页 / 共31页
软件工程课程设计——远程监控系统.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《软件工程课程设计——远程监控系统.doc》由会员分享,可在线阅读,更多相关《软件工程课程设计——远程监控系统.doc(31页珍藏版)》请在三一办公上搜索。

1、编号:04软件工程课程设计题目:基于CS模式远程监控系统软件的实现系 (院):信息工程学院专 业:计算机科学与技术班 级:计科0901B组 长:谢永路组 员:赵春乐 胡园 刘燕三指导教师:王娟娟目录一、可行性分析报告4引言41.2 可行性分析的前提41.3对现有系统的分析5通过综合各个方面的资料,我们了解到基于BS模式的系统尚未成形普及,这说明基于BS模式的系统的需求很大!51.4 所建议的系统5可以使用CS模式,但这使用起来有一定的局限性,不能满足用户的需要!也不符合Intenet的快速发展的需要!51.5 可选择的其他系统方案5如果CS模式开发出现问题,我们可以现开发BS模式,虽然与我们的

2、期望南辕北辙,但可以把这看成第一个版本,这样也可以为CS模式垫定基础!这只是一种方案!51.6 投资及效益分析5开发这款软件投资较小,我们需要的只是在电脑上进行编程,投资较小!而且这个系统又是当今社会所需要的,他能满足我们各个方面的需求!所以未来的效益也是非常可观的!51.7 社会因素方面的可行性51.8 结论5二、 需求规格说明书61概述(Summary)62问题初始分析(Early Analysis)73目标系统功能需求(Function of Target System)74目标系统性能需求(Performance of Target System)75目标系统界面与接口需求(Inter

3、face of Target System)86目标系统其他需求(Other Requirements of Target System)87目标系统假设与约束条件(Suppose and Restriction of Target System)9三、总体设计说明书91.1 远程监控的背景知识101 2 远程监控软件的原理102 系统需求分析及理论基础102.1 系统需求分析102.2 系统开发原理及关键技术112.3 系统的开发平台112.4 编程运行环境13四、详细设计说明书133.1 系统总体结构设计和分析133.2 程序流程及分析14五、源程序清单184.1 系统主要模块设计184.

4、2 连续获得被监控端机器屏幕变化功能实现18六、用户手册221前言(Preface)222功能(Function)23七、测试报告241. 概述(Summary)242. 组件测试(Module Test)243功能测试(Function Test)254. 测试结论(Test Verdict)255 系统运行及测试结果285.1 测试方法285.2 测试环境285 3 系统运行实例28八、软件开发总结报告30参考文献31一、可行性分析报告引言1.1.1 编写目的看这个方案是否可行,是否满足经济可行性,操作可行性,和技术可行性,只有各个方面都可行,才可以进行下面软件的开发,否则以后做的所有工作

5、都白搭!项目的目标:该项目的目标是能够实现B/S模式的远程监控,对局域网乃至整个网络都能够实现远程监控,让用户在任何一个地方都能够对提前设定的区域进行监控和管理。1.1.2 背景目前所有的系统都是在CS模式下完成,基于BS模式的远程监控系统尚未出现,在互联网发展的大背景下,基于CS模式的远程监控系统也就应用而生!1.1.3 定义基于BS模式的远程监控系统:就是让用户在任何地方,通过已经联网的浏览器,对提前设定的区域进行监控和管理!用户PC机:一台普普通通的电脑,具体点这里指能够上网的电脑。普通摄像头:他不具有网络摄像头的功能,只是有某种接口的普通摄像头。后台服务器:他对用户数据进行分析与处理。

6、管理真个网站。1.1.4 参考资料web程序设计(美)Robert W.Sebesta著JSP基础教程耿祥义 张跃平 编著软件工程导论(第五版) 张海藩 编著UML 基础、案例与应用(第三版)(美)Joseph Schmuller 著1.2 可行性分析的前提1.2.1 要求他必须的完成以下功能:(1)、视频数据的实时传输(2)、视频数据的存盘与管理(2)、视频数据的分析以及图像数据的分析1.3 对现有系统的分析通过综合各个方面的资料,我们了解到基于BS模式的系统尚未成形普及,这说明基于BS模式的系统的需求很大!1.4 所建议的系统 可以使用CS模式,但这使用起来有一定的局限性,不能满足用户的需

7、要!也不符合Intenet的快速发展的需要!1.5 可选择的其他系统方案如果CS模式开发出现问题,我们可以现开发BS模式,虽然与我们的期望南辕北辙,但可以把这看成第一个版本,这样也可以为CS模式垫定基础!这只是一种方案!1.6 投资及效益分析开发这款软件投资较小,我们需要的只是在电脑上进行编程,投资较小!而且这个系统又是当今社会所需要的,他能满足我们各个方面的需求!所以未来的效益也是非常可观的!1.7 社会因素方面的可行性我们从三个方面分析该项目的可行性:在操作方面:首先,在全校范围内没有该系统,或类似于该系统的东西出现。而我们又非常的渴望这样的系统。比如,对于机房,机房管理员或任课教师就不用

8、去机房,就能对整个机房的情况进行监控。对于宿舍或者其他居住场所,我们可以随时随地的通过网络,对这些地方进行远程监控和管理。也就是说,用户只需要通过浏览器,输入自己的账号和密码,就可以实现对现场设备状态的安全监控!在操作上是行的通的。在技术方面:我们采用java web程序设计,它是基于JAVA面向对象的。并且我们采用学习过的三种框架技术,实现整个网络编程。这些技术都是我们学习过,并且都已经掌握的。我们会涉及到图像识别,数据的分析与处理等这些前沿的东西。我们相信,在技术上我们完全可以做到。在经济方面:我们不需要学校的补助,我们小组每个人都有电脑,如果可以的话,我们也能去机房,完成项目的编码与测试

9、。可以说我们不需要什么费用,就可以完成这个项目。所以我们共同认为经济上绝对不是一个问题!1.8 结论 开发这个系统是可行的,不管从我们小组个人能力,还是从未来发展方向,都能为我们在web方向的学习,垫定基础!二、 需求规格说明书完成人: 谢永路 1概述(Summary)1.1项目的目的与目标(Purpose and Aim of Project)项目名称是:基于web技术的远程安全监控系统。项目的目的是用户可以在任何一个地方,通过网络就能对提前设置的区域进行监控和管理,而不用去监控室里,这样非常的方便,他是随着Internet发展,应用而生,他是基于B/S模式的,而传统的监控系统是基于C/S模

10、式。数据传输项目的目标:该项目的目标是能够实现B/S模式的远程监控,对局域网乃至整个网络都能够实现远程监控,让用户在任何一个地方都能够对提前设定的区域进行监控和管理。控制命令普通摄像头数据传输服务器发出请求用户PC机整个该系统的工作流程如上图所示,服务器从摄像头获得数据,PC机能够访问服务器,并可以得到实时数据和已经存盘的数据。并且用户也可以通过服务器对远程摄像头进行控制。另外系统所实现的功能远不止这些,他要对后台服务器进行全面管理。又类似一个网站的功能。所有的这些都是该项目的目的。1.2 术语定义(Terms Glossary)用户PC机:一台普普通通的电脑,具体点这里指能够上网的电脑。普通

11、摄像头:他不具有网络摄像头的功能,只是有某种接口的普通摄像头。后台服务器:他对用户数据进行分析与处理。管理真个网站。1.3 相关文档(Related Documents)说明用户需求报告的变更,以及可能受变更影响的其他相关文档,如:项目开发计划和设计说明书。web程序设计(美)Robert W.Sebesta著JSP基础教程耿祥义 张跃平 编著软件工程导论(第五版) 张海藩 编著UML 基础、案例与应用(第三版)(美)Joseph Schmuller 著 Java核心技术Cay S.Horstmann Gary Cornell 编著数据库系统概论王珊 萨师煊 著2问题初始分析(Early An

12、alysis)我们对整个项目进行全面分析以后,发现该项目面临的问题如下:(1)、如何把摄像头中的数据传到服务器中,并每隔一段时间进行保存,如果是多个摄像头,又该如何传输,这涉及到多线程并发的操作。(2)、用户如何通过网络从服务器上获得数据,以及获得的是实时数据。如果该用户又多个摄像头,又该获得每个摄像头中的数据。(3)、后台服务器,如何管理。(4)、用户如何通过服务器对远程摄像头进行控制。2.1 场景描述(Scene Description)用户所处的位置可以是任何一个地点,首先用户的电脑必须能够上网。也就是说能够通过浏览器进行访问,用户不需要安装任何软件。用户必须在某个区域配置有摄像头,该摄

13、像头并且能够连接到服务器中去。2.2 初始功能提取(Early Function Distill)(1)、视频数据的实时传输(2)、视频数据的存盘与管理(2)、视频数据的分析以及图像数据的分析3目标系统功能需求(Function of Target System)3.1 功能需求分析(Function Analysis)创建用例模型与域模型,要求采用用例表进行用例规约描述,必要时采用活动图进行检验。用户查看视频注册登录管理摄像头查询视频管理视频4目标系统性能需求(Performance of Target System)在B/S模式下采用传统的三层体系结构来设计监控组态软件,并不能直接实现与被

14、控对象进行数据通信,因此基于Web技术的监控组态软件采用四层体系结构进行设计,如图2所示。它是在一般的三层体系结构的基础上增加了控制层,用来实现Web服务器与被控对象的通信,进一步控制被控对象。这样既充分利用了现有的网络资源和工业现场资源,也使得两者有机地结合在一起,达到了Web服务器与现场设备通过现场总线进行远程通信的目的。4.1 时间要求(Time Request)如:(1)响应时间,如查询的最长等待时间。(2)更新处理时间,如记账的最长时间。(3)数据的转换和传送时间,如远程数据传输的时间要求。(4)解题时间。以上的时间要求,我们会控制在2s内完成。可能这个时间有些长,但是必须考虑到,网

15、络的流量以及网络阻塞情况。就好比你上网看视频,如果网速很慢,你等的时间会很长些,如果网速快,你可能不用等很长时间。实时视频的传输速率也和网络状况有关。4.2 空间要求(Space Request)如:(1)支持的终端数。(2)支持的并行操作的使用者数。(3)处理的文件和记录数。(4)处理任务的数量。(5)对输入和输出数据的精度要求。(6)对处理和传输过程中的精度要求。5目标系统界面与接口需求(Interface of Target System)5.1 界面需求(Interphase Requirement)界面的原则要求,如方便、简洁、美观、一致等。整个系统的界面风格定义,某些功能模块的特殊

16、的界面要求。(1)输入设备:键盘、鼠标、条码扫描器、扫描仪等;(2)输出设备:显示器、打印机、光盘刻录机、磁带机、音箱等;(3)显示风格:图形界面、字符界面、IE界面等;(4)显示方式:1024*768、640*480等;(5)输出格式:显示布局、打印格式等。我们设计的界面一定要达到美观,易懂,并且会有相应的提示说明。在输入、输出设备上,没有太大的要求。该系统采用的显示风格是IE界面。至于显示方式,他会根据用户电脑的分辨率进行调节,以适应任何形式的显示方式。在输出格式方面,该系统会兼顾各个方面,我们的输出格式会达到形式多样化。总之,他会让用户看着舒心,用着放心。任何人都可以使用。5.2 接口需

17、求(Interface Requirement)与其他系统的接口,如监控系统、控制系统、银行结算系统、税控系统、财务系统、政府网络系统及其他系统等。(1)与系统特殊外设的接口,如CT机、磁共振、柜员机(ATM)、IC卡、盘点机等。(2)与中间件的接口,要列出接口规范、入口参数、出口参数、传输频率等。应在此列举出所有的外部接口名称、接口标准、规范。外部接口列表,如表2-3所示。6目标系统其他需求(Other Requirements of Target System)(1)、统进行扩展、该系统会对区域人员进行图像辨别,数据分析。会判断入境人员的身份,并及时做出相应的处理。(2)、用户信息的安全保

18、护。6.1 安全性(Security)用户的账号,该系统会做到最高级别的保护。远程监控系统会利用新技术全面的保护用户账号的安全。尽量会保证用户信息的保密性。及时用户的账号外漏,该系统也会采用相应的措施,进一步保护!6.2 可靠性(Dependability)系统能够稳定可靠地运行,能够防止外界的一切干扰,稳定性方面相当优秀!6.3 灵活性(Agility)该系统在视频分析,图像数据分析,摄像头处理时想当灵活的,他采用人性的设计方式,按照人的思维处理问题。并且用户可以通过网络对远程的摄像头进行管理,这些都是该系统灵活性的体现。方便用户的操作!6.4 特殊需求(Special Requiremen

19、ts)如:(1)进度需求:系统的阶段进度要求。(2)运行环境需求:平台、体系结构、设备要求。(3)培训需求:用户对培训的需求,是否提供多媒体教学光盘。(4)推广需求:推广的要求,如在上百个远程部门推广该系统,是否要有推广的支持软件。7目标系统假设与约束条件(Suppose and Restriction of Target System)假设与约定条件是对预计的系统风险的描述, 如:(1)法律、法规和政策方面的限制。(2)硬件、软件、运行环境和开发环境方面的条件和限制。(3)可利用的信息和资源。(4)系统投入使用的最晚日期。三、总体设计说明书远程监控技术,始于DOS时代,因为当时网络不发达,这

20、门技术没有得到很多重视,但是随着网络的高度发展,电脑的管理及技术支持的需要,远程监控技术越来越引起人们的关注。网络技术的不断发展,也为远程监控技术的发展创造了条件。远程监控软件一般分两个部分:一部分是客户端程序Client,另一部分是服务器端程序Server,多数远程监控软件把被监控端作为服务器,主控端作为客户端。考虑到在监控过程中,如果把主控端作为客户端向被监控端发送TCP连接请求,容易被防火墙或者杀毒软件阻止,监控过程就不能够成功进行。因此,本毕业设计将被监控端设计为客户端,向主控端发连接请求,建立连接后,主控端向被监控端发送远程控制命令,控制被监控端电脑中的各种应用程序运行,被监控端对主

21、控端发送来的命令进行处理,并将命令处理结果返回给主控端。远程监控软件顺应时代发展的需求,它实用、使用简便,是非常不错的软件。1.1 远程监控的背景知识远程监控是在网络上由一台电脑(主控端Remote)远距离去监控另一台电脑(被监控端Host)的技术,这里的远程不是字面意思的远距离,一般指通过网络监控远端电脑,不过,大多数时候我们所说的远程监控往往指在局域网中的远程监控而言。电脑中的远程控制技术,始于DOS时代,只不过当时由于技术上没有什么大的变化,网络不发达,市场没有更高的要求,所以远程控制技术没有引起更多人的注意。但是,随着网络的高度发展,电脑的管理及技术支持的需要,远程操作及控制技术越来越

22、引起人们的关注。远程控制一般支持下面的这些网络方式:LAN、WAN、拨号方式、互联网方式。此外,有的远程控制软件还支持通过串口、并口、红外端口来对远程机进行控制(不过,这里说的远程电脑,只能是有限距离范围内的电脑了)。传统的远程控制软件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等协议来实现远程控制,不过,随着网络技术的发展,目前很多远程控制软件提供通过Web页面以Java技术来控制远程电脑,这样可以实现不同操作系统下的远程控制,例如数技通科技有限公司在就推出了全球第一套基于中文JAVA的跨平台远程控制软件易控。1 2 远程监控软件的原理远程监控软件一般分两个部分:一部

23、分是客户端程序Client,另一部分是服务器端程序Server,由于本毕业设计的通信模块有别于传统的远程监控软件,在使用前需要将客户端程序安装到被监控端电脑上,将服务器端程序安装到主控端电脑上。在进行一台电脑对多台远端电脑进行控制时,我们发现,远程监控软件似乎更像一个局域网的网络管理员,而提供远程控制的远程终端服务就像极了办公室局域网的延伸。这种一对多的连接方式在节省了调制解调器的同时,还使得网络的接入更加安全可靠,网络管理员也更易于管理局域网上的每一台电脑。本文所论述的远程监控系统就是依照这种方式进行的。2 系统需求分析及理论基础2.1 系统需求分析2.1.1 系统功能需求1连续获得被控端机

24、器屏幕变化。2实现被控端硬盘文件的上传、下载。3实现对鼠标、键盘的模拟。4实现在被控端机器上执行任意DOS命令。5远程关机、远程重启计算机。2.1.2 其他需求1系统实用,界面操作简便。2被监控端自动隐藏运行。被监控端将随电脑启动而自动运行,运行时默认无任何可见界面。2.2 系统开发原理及关键技术2.2.1 系统开发原理本系统是利用类java.awt.robot中的屏幕截取和鼠标、键盘自动控制功能,然后加上网络传输功能来完成来完成截屏和远程控制的。2.2.2 系统运行概述1启动被监控端,打开指定的UDP端口号。用于读取命令。2被监控端读取命令(命令格式为ordername:port)order

25、name为命令名字,port为主控端打开的TCP端口。3接到主控端连接后,被监控端就对当前用户的桌面采用屏幕截取,然后发送给主控端。依被监控端设计的不同,可以设定屏幕截取的时间间隔,时间间隔短一点就可以获得连续屏幕变化了。4主控端在画布上对鼠标、键盘事件进行监听,被监控端重演主控端上的事件5主控端和被监控端读取和发送数据,分别来实现文件上传和下载。6在被监控端实现DOS命令的执行。2.2.3 系统的关键技术系统使用的关键技术就是Java网络编程和Java图形编程。用Java网络编程实现主控端和被监控端的通讯(命令收发、数据传送),用Java图形编程完成主控端控制界面的编写。具体应用如下:1实现

26、主控端(服务器)与被监控端(客户端)之间的通讯。用Java Socket来实现。2用Java采集事件,封装成消息,用于发送。在主控端机器上采集事件(一般只不过是键盘和鼠标的事件),然后封装成消息类传输到被监控端。3在被监控端上重演主控端的动作事件。在被监控端运行client端,接收消息,如果主控端有请求操作的消息,用Robot截下当前屏幕,传给主控端,主控端显示被监控端的屏幕,是一个位图;然后接收在这个位图上的鼠标事件和键盘事件,并把鼠标位置(位图上的坐标换算成对应的屏幕上的坐标)和键值送到被监控端上,在被监控端上重演同样的事件。2.3 系统的开发平台JDK1.5.0,MyEclipse8.5

27、,Windows XP Professional2.3.1 MyEclipse介绍MyEclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了MyEclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境 (IDE)克服目前的局限性,业界厂商合作创建了MyEclipse平台。MyEclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。MyEclipse为

28、工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。MyEclipse是一个开放源代码的项目,任何人都可以下载MyEclipse的源代码,并且在此基础上开发自己的功能插件。同时可以通过开发新的插件扩展现有插件的功能,比如在现有的Java开发环境中加入Tomcat服务器插件。可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是MyEclipse的潜力所在。2.3.2 Java语言Java语言是SUN公司于1995年5月推出的新一代面向对象的计算机通用编程语言,是继WWW之后又一引起世界轰动的产品。Java语言的特点是跨平台和强大的网络编程功能。在Java语言诞生之前,Int

29、ernet已存在,所以Java语言本身就封装了大量进行网络编程的类库,使得网络编程功能强大,同时又简化了网络编程的操作。因此利用Java语言可以开发出功能强大的网络应用程序。2.3.3 Jar命令功能:Java归档工具语法:jar 命令选项 manifest destination input-file input-files jar工具是个java应用程序,可将多个文件合并为单个JAR归档文件。jar是个多用途的存档及压缩工具,它基于ZIP和ZLIB压缩格式。然而,设计jar的主要目的是便于将java applet或应用程序打包成单个归档文件。将applet或应用程序的组件(.class文件

30、、图像和声音)合并成单个归档文件时,可以用java代理(如浏览器)在一次HTTP事务处理过程中对它们进行下载,而不是对每个组件都要求一个新连接。这大大缩短了下载时间。jar还能压缩文件,从而进一步提高了下载速度。此外,它允许applet的作者对文件中的各个项进行签名,因而可认证其来源。jar工具的语法基本上与tar命令的语法相同。命令选项:-c:在标准输出上创建新归档或空归档。-t:在标准输出上列出内容表。 -xfile:从标准输入提取所有文件,或只提取指定的文件。如果省略了file,则提取所有文件;否则只提取指定文件。 -f:第二个参数指定要处理的jar文件。在-c(创建)情形中,第二个参数

31、指的是要创建的jar文件的名称(不是在标准输出上)。在-t(表(或-x(抽取)这两种情形中,第二个参数指定要列出或抽取的jar文件。-v:在标准错误输出设备上生成长格式的输出结果。 -m:包括指定的现有清单文件中的清单信息。用法举例:“jar cmf myManifestFile myJarFile *.class”-0:只储存,不进行 ZIP 压缩。 -M:不创建项目的清单文件。 -u:通过添加文件或更改清单来更新现有的 JAR 文件。例如:“jar -uf foo.jar foo.class”将文件 foo.class 添加到现有的JAR文件foo.jar中,而“jar umf manif

32、est foo.jar”则用manifest中的信息更新foo.jar的清单。 -C:在执行 jar 命令期间更改目录。例如:“jar -uf foo.jar -C classes *”将classes目录内的所有文件加到foo.jar中,但不添加类目录本身。程序示例 1:将当前目录下所有CLASS文件打包成新的JAR文件:jar cf file.jar *.class 2:显示一个JAR文件中的文件列表:jar tf file.jar 3:将当前目录下的所有文件增加到一个已经存在的JAR文件中:jar cvf file.jar * 2.4 编程运行环境硬件环境:CPU: 闪龙2400内存:2

33、56M硬盘:80G软件环境:操作系统:Windows XP Professional应用软件:MyEclipse8.5 + JDK1.5.0 四、详细设计说明书3.1 系统总体结构设计和分析本系统设计的方案为C/S模式,在主控端电脑上安装服务器端程序,在被监控端电脑上安装客户端程序。该系统的控制过程是先在主控端电脑上执行服务器程序,在命令收发过程中,主控端向被监控端配置的UDP端口发送命令,该命令是一个控制命令,要求被监控端来连接其开启的TCP端口和要求被监控端执行的操作,如果被监控端监听到该UDP命令,主动开启TCP端口向主控端发送连接请求。这样就建立了一个特殊的远程服务,然后通过这个远程服

34、务,主控端使用各种远程控制功能发送远程控制命令,控制被监控端电脑中的各种应用程序运行。系统总体结构如图1:图1 系统总体结构图图3.1把软件功能分解到通信的两个端点上,即客户端和服务器端,采用ClientServer模式。这样能提高设计的灵活性,易于系统的扩展。被监控端接受主控端命令,并处理命令,然后输出命令处理结果;主控端则提供交互界面及命令处理结果显示;数据交换通道的建立由双方的数据通信模块负责。从而实现点到点的直接控制监控,满足实时性要求。3.1.1 主控端的主要功能模块主控端包括的模块有:消息输入,命令处理结果显示模块,通信模块。消息输入模块负责将用户界面的事件传送到通信模块,通信模块

35、将命令信息发送到被监控端;被监控端执行操作后返回的成功或失败信息交由主控端命令处理结果显示模块根据信息的格式进行显示。3.1.2 被监控端的主要功能模块被监控端包括的模块有:通信模块,命令处理模块。被监控端处于侦听状态,一旦接收到合法的连接请求,就开UDP端口,并开启命令接受线程,建立连接后,通过通信模块接收主控端发来的命令信息,经命令处理模块解释后,并将结果返回到主控端。3.2 程序流程及分析3.2.1 被监控端启动流程在被监控端安装客户端程序,程序启动的时候,尝试开启UDP端口,如果防火墙或者杀毒软件阻止,尝试开启配置的其它UDP端口,如果都尝试完毕,启动失败。否则,将开启的UDP套接字传

36、入,然后开启命令接收线程,目的是进行命令获取,并对获取的命令进行处理。然后将自己复制到自启动项,并改名为Explorer.jar. 流程如图2。图2 被监控端启动流程3.2.2 主控端启动流程在主控端安装服务器程序,主控端首先启动其控制窗口类,初始化图形在主控端安装服务器程序,主控端首先启动其控制窗口类,初始化图形显示,然后用户输入被监控端的IP地址。接着主控端开启任意TCP端口,并向该IP配置的UDP端口发送初始化命令(命令格式为ordername:port),ordername为命令名字,port为主控端打开的TCP端口号。主控端对开启的TCP端口进行监听,如果超时,连接失败。否则,主控端

37、读取被监控端的状态对象,接着启动控制模块和屏幕监视模块。流程如图3。图3 主控端启动流程图4 命令接受和处理流程3.2.3 命令接收和处理流程被监控端UDP端口启动成功后,就开始对该UDP端口进行监听,如果监听到有命令,就读取它,并判断命令是否有效,命令以ordername:port为格式,如果无效,返回继续读取命令,否则,调用相应的命令处理模块对命令进行处理,命令处理完后将处理结果返回给主控端。流程如图4。3.2.4 图形监视线程启动流程主控端开启任意TCP端口,向被监控端的UDP端口发送“要求被监控端连接”的UDP命令,命令形式为screen:TCP Port。如果命令超时,命令执行失败,

38、否则,如果被监视端来连接,生成Soket对象,从Soket中读取被监视端发送过来的图形对象,并将图象显示在画布上,每隔一定时间(若干秒),重新读取图象,更新画布显示,从而实现连续获得对方屏幕变化。流程如图5。图5 图形监视线程启动流程3.2.5 远程控制流程被监控端收到主控端的UDP命令:control:TCP Port,获得主控端开放的TCP端口号。成功连接主控端的TCP端口后,并从中读取事件对象,接着对事件对象进行类型判断,如果是键盘事件,就对键盘事件重演;如果是鼠标事件,就对鼠标事件重演。接着判定控制套接是否关闭,如果关闭,控制结束。否则返回继续读取事件。流程如图6。图6 远程控制流程3

39、.2.6 文件上传流程主控端开启任意TCP端口,向被监控端发送文件上传命令,命令格式为:fileup:TCP Port。如果命令超时,文件上传失败,否则,主控端读取文件数据并发送,发送过程中如果I/O错误,文件上传失败,否则,进行文件是否读取完判断,如果读取完,则上传成功,否则,继续读取文件数据。流程如图7。图7 文五、源程序清单4.1 系统主要模块设计4.1.1 消息输入,命令处理结果显示模块主控端消息输入,显示模块的开发采用JAVA图形编程,利用模块化、通用性强的特点,实现远程监控中用户控制界面的编写。4.1.2 通信模块实现1Socket编程数据通信模块中的数据通道建立采用Socket编

40、程。Socket支持TCPIP协议网络通信的基本操作;它屏蔽了网络底层的通信细节,使编程简单;它对通信端点进行了抽象,提供发送和接收数据机制及打开、计算和关闭会话的能力。本项目中,客户端和服务器代表运行在Windows操作平台下,采用Java Socket来编程实现命令和数据信息的传输。主控端主要通信代码:ServerSocket server=NewRadomSocket.openNewPort(); /开启新端口Socket socket=null;server.setSoTimeout(Parameter.TCP_TIME_OUT); /设置超时socket=server.accept(

41、); /开启ObjectInputStream readin=new ObjectInputStream(socket.getInputStream(); /封装流,准备读取一个对象socket.close(); /关闭socket,结束通信被监控端主要通信代码:Socket socket=new Socket(serverip, serverport);ObjectOutputStream send=new ObjectOutputStream(socket.getOutputStream();/封装流send.writeObject(cc); /发送send.close(); /关闭流so

42、cket.close(); /关闭套接4.1.3 命令处理模块命令处理模块的实现就是通过函数调用,调用各个命令处理类。在命令处理模块中,被监控端执行以下操作:发送自己的状态信息给主控端;建立图象传送;开启控制命令套接字;文件上传;文件下载;执行DOS命令,获取执行结果和错误流。4.2 连续获得被监控端机器屏幕变化功能实现4.2.1 比较几种屏幕截取方法在Java远程监控过程中,我们要截取软件运行GUI界面,并将其保存到一个或一系列图像文件中。目前,在Windows平台下,有关屏幕截取的工具软件有许多,比如:HyperCam等,当然还可以直接利用Windows操作系统支持的屏幕拷贝Print S

43、creen键,将屏幕拷贝到剪贴板,在保存为图像文件。这些工具软件一定要屏幕截取者,在操作过程中要精力集中并且伺机捕获所需要的软件运行界面。事实上,有时候我们需要Java应用程序,自动对运行的GUI界面进行拍照,比如:一台计算机要获取网络上另一台计算机正在运行的GUI界面,要看看对方计算机上软件运行情况。这就需要在Java应用程序中,自动将运行的GUI界面保存到一个图像文件中,然后通过网络传输到另一台计算机上。而上述HyperCam等工具软件无法与我们的Java应用融合为一体。因此,我们需要在Java应用程序中编写一个屏幕照相机。4.2.2 Java“屏幕照相机”的编写原理屏幕的截取是比较接近操

44、作系统底层的操作,在Windows平台下,该操作似乎成了VC、VB等语言开发的专利。事实上,屏幕的截取在Java应用程序中,及其简单。在Java JDK1.5.0 中提供了一个机器人Robot类。该类用于产生与本地操作系统有关的底层输入、测试应用程序运行或自动控制应用程序运行。Robot类提供了一个方法:.createScreenCapture(.),可以直接将全屏幕或某个屏幕区域的像素拷贝到一个BufferedImage对象中,我们只需要将该对象写入到一个图像文件之中,就完成了屏幕到图像的拷贝过程。4.2.3 Java“屏幕照相机”的实现为了构造一个比较完善的Java屏幕照相机,我们构造了一

45、个ImageProvider JavaBean,其源代码和说明如下:/* 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的拍照 */public class ImageProvider private Robot robot=null; /图象采集类private Rectangle rect=null; /要复制的 屏幕区域/* 构造函数,输入要采集的屏幕的 矩形信息*/public ImageProvider() throws AWTExceptionrect=new Rectangle(Toolkit.getDefaultToolkit().getScreenSize(

46、); /要复制的屏幕区域,这里为全屏robot=new Robot(); /创建Robot对象/* 复制全屏幕,返回BufferedImage对象 */public BufferedImage CopyScreen()BufferedImage image=robot.createScreenCapture(rect); /截取屏幕,生成BufferedImage对象return image;4.2.4 远程屏幕监控的实现实现屏幕监控要完成被监控端发送屏幕截图和主控端接收图片的工作,该功能的实现中构造了两个类:SendImage Thread和GetImageThread,类图分别为图8和图9。图8 SendImage Thread类图SendImage T

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号