这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的理念缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的各类系统很难达到老师的要求。

为了大家能够顺利并以最少的精力通过毕设,学长分享优质毕业设计项目,需要的自取。

目录

1.说明

2.远程监控系统系统设计

2.1 系统总体结构设计和分析

2.1.1 主控端的主要功能模块

2.1.2 被监控端的主要功能模块

2.2 程序流程及分析

2.2.1 被监控端启动流程

2.2.2 主控端启动流程

2.2.3 命令接收和处理流程

2.2.4 图形监视线程启动流程

2.2.5 远程控制流程

2.2.6 文件上传流程


1.说明

近年来,网络技术的不断发展,为远程监控技术的发展创造了条件。远程监控系统软件越来越受到人们的重视,其实用性也毋庸质疑。基于JAVA C/S远程监控系统软件突破了空间的限制,使用者不用亲临,在自己的电脑面前就能轻松的实现对被监控端机器的监控。本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;实现在远程机器上执行任意DOS命令;远程关机、远程重启计算机,方便了用户监视和操作被监控端机器。本系统从系统需求分析、概要设计、详细设计到具体的编码实现和后期的代码优化、功能测试都严格遵循了软件工程的思想。

2.远程监控系统系统设计

2.1 系统总体结构设计和分析

本系统设计的方案为C/S模式,在主控端电脑上安装服务器端程序,在被监控端电脑上安装客户端程序。该系统的控制过程是先在主控端电脑上执行服务器程序,在命令收发过程中,主控端向被监控端配置的UDP端口发送命令,该命令是一个控制命令,要求被监控端来连接其开启的TCP端口和要求被监控端执行的操作,如果被监控端监听到该UDP命令,主动开启TCP端口向主控端发送连接请求。这样就建立了一个特殊的远程服务,然后通过这个远程服务,主控端使用各种远程控制功能发送远程控制命令,控制被监控端电脑中的各种应用程序运行。系统总体结构如图:

java实现应用程序监控 java应用程序监控设计_java

 

图把软件功能分解到通信的两个端点上,即客户端和服务器端,采用Client/Server模式。这样能提高设计的灵活性,易于系统的扩展。被监控端接受主控端命令,并处理命令,然后输出命令处理结果;主控端则提供交互界面及命令处理结果显示;数据交换通道的建立由双方的数据通信模块负责。从而实现点到点的直接控制监控,满足实时性要求。

2.1.1 主控端的主要功能模块

主控端包括的模块有:消息输入,命令处理结果显示模块,通信模块。消息输入模块负责将用户界面的事件传送到通信模块,通信模块将命令信息发送到被监控端;被监控端执行操作后返回的成功或失败信息交由主控端命令处理结果显示模块根据信息的格式进行显示。

2.1.2 被监控端的主要功能模块

被监控端包括的模块有:通信模块,命令处理模块。被监控端处于侦听状态,一旦接收到合法的连接请求,就开UDP端口,并开启命令接受线程,建立连接后,通过通信模块接收主控端发来的命令信息,经命令处理模块解释后,并将结果返回到主控端。

2.2 程序流程及分析

2.2.1 被监控端启动流程

在被监控端安装客户端程序,程序启动的时候,尝试开启UDP端口,如果防火墙或者杀毒软件阻止,尝试开启配置的其它UDP端口,如果都尝试完毕,启动失败。否则,将开启的UDP套接字传入,然后开启命令接收线程,目的是进行命令获取,并对获取的命令进行处理。然后将自己复制到自启动项,并改名为Explorer.jar. 流程如图。

java实现应用程序监控 java应用程序监控设计_课程设计_02

 

2.2.2 主控端启动流程

在主控端安装服务器程序,主控端首先启动其控制窗口类,初始化图形在主控端安装服务器程序,主控端首先启动其控制窗口类,初始化图形显示,然后用户输入被监控端的IP地址。接着主控端开启任意TCP端口,并向该IP配置的UDP端口发送初始化命令(命令格式为ordername:port),ordername为命令名字,port为主控端打开的TCP端口号。主控端对开启的TCP端口进行监听,如果超时,连接失败。否则,主控端读取被监控端的状态对象,接着启动控制模块和屏幕监视模块。流程如图。

java实现应用程序监控 java应用程序监控设计_数据库_03

 

java实现应用程序监控 java应用程序监控设计_数据库_04

 

2.2.3 命令接收和处理流程

被监控端UDP端口启动成功后,就开始对该UDP端口进行监听,如果监听到有命令,就读取它,并判断命令是否有效,命令以ordername:port为格式,如果无效,返回继续读取命令,否则,调用相应的命令处理模块对命令进行处理,命令处理完后将处理结果返回给主控端。

2.2.4 图形监视线程启动流程

主控端开启任意TCP端口,向被监控端的UDP端口发送“要求被监控端连接”的UDP命令,命令形式为screen:TCP Port。如果命令超时,命令执行失败,否则,如果被监视端来连接,生成Soket对象,从Soket中读取被监视端发送过来的图形对象,并将图象显示在画布上,每隔一定时间(若干秒),重新读取图象,更新画布显示,从而实现连续获得对方屏幕变化。

java实现应用程序监控 java应用程序监控设计_数据库_05

 

2.2.5 远程控制流程

被监控端收到主控端的UDP命令:control:TCP Port,获得主控端开放的TCP端口号。成功连接主控端的TCP端口后,并从中读取事件对象,接着对事件对象进行类型判断,如果是键盘事件,就对键盘事件重演;如果是鼠标事件,就对鼠标事件重演。接着判定控制套接是否关闭,如果关闭,控制结束。否则返回继续读取事件。

java实现应用程序监控 java应用程序监控设计_java_06

 

2.2.6 文件上传流程

主控端开启任意TCP端口,向被监控端发送文件上传命令,命令格式为:fileup:TCP Port。如果命令超时,文件上传失败,否则,主控端读取文件数据并发送,发送过程中如果I/O错误,文件上传失败,否则,进行文件是否读取完判断,如果读取完,则上传成功,否则,继续读取文件数据。

java实现应用程序监控 java应用程序监控设计_开发语言_07