前面我们所说的是一台电脑对一台电脑的情况,其实,基于java的远程控制最适合的模式是一对多,即利用远程监控软件,我们可以使用一台电脑监控多台电脑,这就使得我们不必为办公室的每一台电脑都安装一个调制解调器,而只需要利用办公室局域网的优势就可以轻松实现远程多点控制了。
在进行一台电脑对多台远端电脑进行控制时,我们发现,远程监控软件似乎更像一个局域网的网络管理员,而提供远程控制的远程终端服务就像极了办公室局域网的延伸。这种一对多的连接方式在节省了调制解调器的同时,还使得网络的接入更加安全可靠,网络管理员也更易于管理局域网上的每一台电脑。
本文所论述的远程监控系统就是依照这种方式进行的。
第三章需求分析
3.1设计目的和原则
随着计算机及网络的应用普及,千千万万的人们在娱乐、通讯、
学习、工作等各方面都实现了前所未有的信息化,极大地提高了生活质量与工作效率。然而在这种种便利背后,你关注的人在做什么呢?比如:公司员工。因此,远程监控发挥作用了。这里以公司领导为例,远程监控系统软件方便了公司领导人管理公司员工。在一个企业中,作为公司领导人,一定很担心自己的员工利用上班时间做工作以外的其他事情,也很担心他们泄露公司机密,等等。有了远程监控,这样的担心就很容易解决,你不用亲临监督每个员工,在自己电脑面前就能对他们的一举一动了如指掌。通过远程监控系统的设计,使主控端能够在以下几方面对被控端实施控制。实现查看被控端屏幕,及时了解被控端的操作,通过DOS命令对被控端进行控制。可以在主控端和被控端实现文件的上传、下载,传递消息。能实现对被监控端鼠标和键盘的模拟。当发现被控端操作不当时,通过强行关机或重启命令来使被控端恢复到原来的状态。
远程监控软件一般分两个部分:一部分是客户端程序Client,另一部分是服务器端程序Server,多数远程监控软件把被监控端作为服务器,主控端作为客户端。考虑到在监控过程中,如果把主控端作为客户端向被监控端发送TCP连接请求,容易被防火墙或者杀毒软件阻止,监控过程就不能够成功进行。因此,本毕业设计将被监控端设计为客户端,向主控端发连接请求,建立连接后,主控端向被监控端发送远程控制命令,控制被监控端电脑中的各种应用程序运行,被监控端对主控端发送来的命令进行处理,并将命令处理结果返回给主控端。
设计过程中应该遵循界面友好、操作简单、实用性强、代码尽可能精简等原则。
3.2主要功能需求
l连续获得被控端机器屏幕变化。
要获得屏幕的动态变化画面,就要设置好两个画面帧之间的时间间隔,同时还有画布大小,被监控端屏幕分辨率等基本信息,这样才能精确定位。主控端开启任意TCP端口,向被监控端的UDP端口发送“要求被监控端连接”的UDP命令,如果命令超时,命令执行失败,否则,如果被监视端来连接,生成Soket对象,从Soket中读取被监视端发送过来的图形对象,并将图象显示在画布上,每隔一定时间(若干秒),重新读取图象,更新画布显示,从而实现连续获得对方屏幕变化。
l实现被控端硬盘文件的上传、下载。
主控端开启任意TCP端口,向被监控端发送文件上传命令,命令格式为:fileup:TCPPort。如果命令超时,文件上传失败,否则,主控端读取文件数据并发送,发送过程中如果I/O错误,文件上传失败,否则,进行文件是否读取完判断,如果读取完,则上传成功,否则,继续读取文件数据。文件下载的原理也类似。
l实现对鼠标、键盘的模拟。
主控端应能很好的操作对方机器,就像坐在对方机器前一样,浏览对方文件,运行各种应用程序,上网等。
l实现在被控端机器上执行任意DOS命令。
被监控端UDP端口启动成功后,就开始对该UDP端口进行监听,如果监听到有命令,就读取它,并判断命令是否有效,命令以ordername:port为格式,如果无效,返回继续读取命令,否则,调用相应的命令处理模块对命令进行处理,命令处理完后将处理结果返回给主控端。
l远程关机、远程重启计算机。
有些情况下,为了方便,需对远程计算机进行关机和重启操作,本质上也是通过DOS命令来实现的。
3.3所需的关键技术及系统配置
系统使用的关键技术就是Java网络编程和Java图形编程。用Java网络编程实现主控端和被监控端的通讯(命令收发、数据传送),用Java图形编程完成主控端控制界面的编写。具体应用如下:
第4章系统体系结构
4.1设计目的和原则
远程监控系统设计的目的是通过对局域网内各计算机的监控,最终管理局域网内所有的计算机。因此,对于网络的管理者来说,必须对网络内各计算机的工作状况一目了然。对于本系统设计的目的是根据远程监控的基本要求设计一个简单的远程监控系统,它能够实现远程监控系统中对文件、系统的管理,对屏幕、进程、系统信息的查看。可以说是一个小小的远程监控系统模型,更多功能的实现还有待进一步研究与实践。在设计过程中主要遵循以下原则: