教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

利用Java实现远程控制

来源:网络收集 时间:2026-05-18
导读: 利用Java实现远程控制 摘 要: 介绍了远程控制的原理,详细地叙述了利用Java实现远程控制软件的程序设计方法和要点,并给出了要点的具体实现方法。 关键词: 远程控制;Java;客户机/服务器 The Implement of Remote Control Software by using Java Abstrac

利用Java实现远程控制

摘 要: 介绍了远程控制的原理,详细地叙述了利用Java实现远程控制软件的程序设计方法和要点,并给出了要点的具体实现方法。

关键词: 远程控制;Java;客户机/服务器 The Implement of Remote Control Software by using Java Abstract: The principle of remote control software is introduced. The method and technique to implement remote control software by using Java are recited in detail. The implements of key points are presented.

Key words: Remote control; Java; Client/Server

我们知道有一些软件(如NetMeeting,PcAnywhere等)可以实现远程控制,通过共享桌面等形式,对远程主机做任何操作,就像控制本地的机器一样。这种控制技术在远程设备(软件)的维护、监控与故障诊断等方面有广泛的应用前景。由于Java语言具有良好的跨平台性,用Java语言编写的软件具有“一次编写,各处运行”的特点,所以,利用Java实现远程控制软件具有更广的实用性。笔者在开发一个网络型监控系统中,使用Client/Server模式,利用Java实现了远程控制软件,在Win2000/Win98/Linux和jdk1.4.1(能处理鼠标滚轮的事件) 环境

________________________________________________________________________________________ 1

下运行良好,客户机的屏幕在800×600,32位真彩色的模式下,在局域网中控制延时在1秒左右。现介绍一下设计原理和程序实现要点,以供同行们参考。 1 远程控制的原理

远程控制的原理[1]是:用户连接到网络上,通过远程访问的控制端程序发送控制端身份验证信息和与远程主机连接的要求,远程主机的被控端程序验证控制端身份,如果验证通过,就与控制端建立连接,并向控制端发送验证通过和已建立连接的信息。这时,控制端便可通过控制端程序监控或向远程主机发送要执行的指令,而被控端程序则执行这些指令,并把键

盘、鼠标指令和屏幕刷新传给控制端程序,控制端程序通过处理把主机屏幕等信息显示给用户看,使得用户就像亲自在远程主机上操作一样。如果没有通过身份验证,就不与控制端建立连接,用户也就不能远程控制主机了。

远程控制软件大都使用C/S模式。使用前需要将控制端程序安装到控制端计算机上,将被控端程序安装到被控端计算机上。它的控制过程一般是先在控制端上执行控制端程序,像一个普通客户一样向被控端计算机发出信号,建立一个特殊的远程服务,然后通过这个远程服务,使用各种远程控制功能发送远程控制命令,控制被控端计算机中各种应用程序的运行。这种远程控制方式称为基于远程服务的远程控制(RemoteControloverRemoteService)。

________________________________________________________________________________________ 2

2 用Java实现远程控制 2.1 总体设计

为了实现远程控制,被控端程序需要不断地把屏幕图象发送到控制端,并接收来自控制端的鼠标和键盘操作指令,然后按操作指令执行。控制端程序需要不断地接收被控端程序发送的屏幕图象,然后在控制端窗口中显示,并捕捉控制端的鼠标和键盘事件,然后传送到被控端。双方整个交互过程模型如图1所示。

控制端

图象显示 鼠标和键盘事件获取 被控端

鼠标和键盘事件模拟 屏幕截取 通信 通信 通信 通信 图 1 远程控制交互过程模型

2.2 所用到的java的包、类及方法介绍

java.lang,

java.io, java.net

java.awt,

java.awt.event,java.awt.image,javax.swing,

com.sun.image.codec.jpeg。重要的类有Robot(事件模拟类)、Toolkit(工具箱类)、JPEGCodec(jpeg图象编码/解码类)、UIManager(界面管理类)、Socket(套接字类)、ServerSocket(服务器套接字类)和InetAddress(Internet地址类)。

Robot类的重要方法有createScreenCapture(Rectangle screenRect)、mousePress (int buttons)、mouseRelease (int buttons)、mouseMove (int x, int y)、mouseWheel (int wheelAmt)、keyPress

3

(int keycode) 和keyRelease (int keycode) ,功能分别是捕获屏幕图象、按下鼠标键、松开鼠标键、移动鼠标键、旋转鼠标滚动轮、按下一特定键和松开一特定键。Toolkit类的重要方法有getDefaultToolkit().getScreenSize()

getDefaultToolkit().addAWTEventListener(),功能分别是得到屏幕的大小和把窗口事件处理委托给某个听众。 2.3 程序设计实现要点

2.3.1鼠标和键盘事件的获取及操作模拟

客户端程序需要不断地接收服务器端程序发送的屏幕图象,然后在客户端窗口中显示,并捕捉客户端在屏幕图象显示窗口中用户发出的鼠标和键盘指令。对于鼠标指令,可以通过让窗口组件对象把自己作为鼠标和鼠标运动听众加入来获得,具体如下: //加入鼠标听众

this.addMouseListener(new MouseListener(){ public void mousePressed(MouseEvent e) { //

MOUSE_PRESSED,e.getX(),e.getY(),e.getButton() }

public void mouseReleased(MouseEvent e) { //

MOUSE_RELEASED,e.getX(),e.getY(),e.getButton() }

4

});

//加入鼠标运动听众

this.addMouseMotionListener(new MouseMotionListener(){ public void mouseDragged(MouseEvent e) { //

MOUSE_DRAGGED,e.getX(),e.getY(),e.getButton() }

public void mouseMoved(MouseEvent e) { //

MOUSE_MOVED,e.getX(),e.getY(),e.getButton() } });

this.addMouseWheelListener(new MouseWheelListener(){ public void mouseWheelMoved(MouseWheelEvent e) { //

MOUSE_WHEELMOVED,e.getX(),e.getY(),e.getUnitsToScroll() } });

对于键盘指令,可以让窗口把自己作为听众加入来获得,具体如下:

Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener(){

5

…… 此处隐藏:1591字,全部文档内容请下载后查看。喜欢就下载吧 ……
利用Java实现远程控制.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/412789.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)