当前位置:文档之家› 一种远程控制系统的设计与实现

一种远程控制系统的设计与实现

一种远程控制系统的设计与实现
刘旭东
(长安大学信息工程学院陕西西安710064)
摘要:目前,随着计算机网络的广泛应用,无纸办公和远程办公是人们经常谈及的话题,为了实现计算机网络的这
种应用,方便人们工作,本文提出了一种远程控制系统。

为了实现这个系统,首先从系统所要实现的功能着手,设计出该
系统的体系结构,并详细说明体系结构中各模块的主要功能;接着从通信效率和网络环境方面考虑,设计出适合于该系统
的通信协议;最后以流程图的方式详细说明系统软件的实现过程。

关键词:远程控制;软件;系统结构;通信协议
中图分类号: TP393.09 文献标识码: B 文章编号: 1004 373X (2005) 02 053 03
1 引言
随着计算机网络的飞速发展,人们可以很方便地从Internet上获取和自己工作生活密切相关的信息,世界也真正变成一个地球村,我们可以和世界上其他任何一个人通过计算机网络进行沟通,信息资源达到了高度的共享。

从这一点得到启发,希望能够设计一个远程控制系统,通过他可以在家里控制办公室里的计算机。

如果你是软件开发商,你的员工可以通过他在办公室里远程为客户配置系统、对产品进行维护,如果客户向你报告软件产品出现问题你可以远程对产品进行调试,最终解决问题。

这样员工就不会因长期的劳苦奔波而抱怨,用户也不会因为你不能及时解决产品的问题而和你讨价还价,当然也为公司节约了人力和财力。

下面详述该远程控制系统是如何实现的。

2 远程控制系统的体系结构设计
该远程控制系统由服务器端和客户端2个部分组成,客户端可以通过鼠标和键盘控制服务器端的计算机,同时还可以相互传输文件。

其体系结构如图1所示,主要由安全性校验、屏幕控制、鼠标控制、键盘控制、命令控制、文件传输、端口设置等6个模块组成。

下面具体说明各个模块的功能。

(1)安全性校验模块
从系统安全性方面考虑,目的是让客户端和服务器端建立可信联接,客户端要想完全控制服务器端的计算机,必须先通过服务器的验证取得服务器的信任。

这样可以避免一些不怀好意的人通过客户端窃取服务器端计算机中有用的资料。

图1 远程控制系统的体系结构
(2)屏幕控制模块
可以让客户端用户实时监控服务器端计算机的运行状态。

客户端以一定频率向服务器发送请求,服务器响应客户端请求将自己的屏幕拷贝下来并将这些信息发送给客户端,客户端接收到这些信息之后以图形的形式显示出来,为鼠标和键盘控制提供图形化接口。

(3)鼠标标控制模块
可以让客户端用户通过鼠标标控制服务器端的计算机。

其实现过程是客户端软件先捕捉鼠标在图形化接口(屏幕控制模块所提供的)中的动作,再将这些信息发送到服务器端,最后服务器端的服务程序向操作系统发送这个动作的消息,这样就如同在服务器端的操作系统上进行了相应的鼠标操作。

如果动作是在“Microsoft Word”图标上双击,则远程控制系统服务器端的“Microsoft Word”被打开。

(4)键盘控制模块
可以让客户端用户通过键盘控制服务器端计算机的输入,其实现过程是客户端软件先捕捉键盘在图形化接口(屏幕控制模块所提供的)中的动作,再将这些信息发送到服务器端,服务器端的服务程序向操作系统发送这个动作的消息,这样就如同在服务器端的操作系统上进行了相应的键盘输入。

如果服务器端的“Microsoft Word”为当前的活动窗口,则客户端的键盘操作就如同有人在服务器端利用“Microsoft Word”进行文字编辑一样。

屏幕控制、键盘控制和鼠标控制模块是在网络状况较好的情况下才会有较快的响应速度,如果网络状况不好将采用命令控制模块进行远程控制。

这种控制方式有较多的限制,需要根据具体的需求进行设计。

(5)文件传输模块
可以方便客户端和服务器端进行文件传输,他由文件上传和文件下载2个部分组成。

文件上传可以把客户端的文件上传到服务器端的计算机上;文件下载可以把服务器端的文件下载到客户端的计算机上。

(6)端口设置模块
配置双方进行通信的端口。

3 远程控制系统软件的实现
3.1 通信协议的设计
3.1.1 系统控制协议
当客户端需要向服务器端发送控制信息时将采用如下的格式:
“#Command#PointX#PointY#KeyAscii#ControlText#Addi tion#Length#”
其中信息格式中各参数的值和含义如表1所示。

3.1.2 图片传输协议
图片信息的传输采用Byte的方式,其格式如图2所示。

图2 图片信息的传输格式
若控制信息转换成字符串后为“0123456789”则表示图片传输开始,长度转换成数字后表示图片信息总长度;若控制信息转换成字符串后为“9876543210”则表示图片传输结束;否则表示传输的为图片内容信息,长度转换成数字后表示本次发送信息的长度,后面为实际内容。

参数取值含义
Command DoubleClick 鼠标双击操作
LeftClick 鼠标左击操作
RightClick 鼠标右击操作
MouseMove 鼠标移动操作
KeyPress 键盘按键操作
Screen 要求服务器发送屏幕图片信息给客户端
CommandControl 以命令方式控制服务器PointX 鼠标位置X坐标图形化接口中鼠标的X坐标(相对位置) PointY 鼠标位置Y坐标图形化接口中鼠标的Y坐标(相对位置) KeyAscii 按键的Ascii码图形化接口中按键的Ascii码ControlText 命令控制的内容命令控制的内容
Addition 附加信息附加信息以备以后系统的扩展所用Length Length前面内容长度作为校验所用保证信息的可靠性
表1 信息格式中各参数的值和含义
图3 服务器端软件流程图
3.1.3 文件传输协议
文件传输也采用Byte方式,其传输协议由以下几步组成:
(1)如果是文件上传则发送信息转换成字符串后为“#_CMDFileUp_#”;如果是文件下载则发送信息转换成字符串后为“#_CMDFileDown_#”。

(2 )发送源文件名,转换后的字符串为“#_SourceFileName_#”。

(3)发送目的文件名,转换后的字符串为“#_DestinationFileName_#”。

(4)发送文件开始标志,转换后的字符串为“#_Start_#”。

(5)发送文件内容,直到发送完毕送完毕。

(6)发送文件结束标志,转换后的字符串为“#_End_#”。

3.2 服务器端软件的实现
服务器端软件的实现过程是当客户端要和服务器建立连接时,如果合法则允许建立连接,如果不合法则拒绝建立连接。

建立连接后服务器启动服务,监听客户端发送过来的控制信息,然后和客户端协作完成相应的任务。


图4所示。

3.3 客户端软件的实现
客户端软件的实现过程是首先向服务器端发送身份信息,请求和服务器建立连接,如果通过验证则定时发送屏幕控制信息,同时接受用户的输入并把其转换成相应的控制信息,然后发送到服务器。

如果请求被服务器拒绝则退出应用程序。

图4 客户端软件流程
4 结语
开发这种系统具有实际应用价值,用户可以通过他进行远程办公,软件公司可以通过他对自己的产品进行远程配置以及在线诊断和维护,为公司节约人力、财力和物力。

相关主题