
2远程控制系统的体系结构设计
该远程控制系统由服务器端和客户端2个部分组成,客户端可以通过鼠标和键盘控制服务器端的计算机,同时还可以相互传输文件。其体系结构如图1所示,主要由安全性校验、屏幕控制、鼠标控制、键盘控制、命令控制、文件传输、端口设置等6个模块组成。下面具体说明各个模块的功能。
(1)安全性校验模块
从系统安全性方面考虑,目的是让客户端和服务器端建立可信联接,客户端要想完全控制服务器端的计算机,必须先通过服务器的验证取得服务器的信任。这样可以避免一些不怀好意的人通过客户端窃取服务器端计算机中有用的资料。
(2)屏幕控制模块
可以让客户端用户实时监控服务器端计算机的运行状态。客户端以一定频率向服务器发送请求,服务器响应客户端请求将自己的屏幕拷贝下来并将这些信息发送给客户端,客户端接收到这些信息之后以图形的形式显示出来,为鼠标和键盘控制提供图形化接口。
(3)鼠标控制模块
可以让客户端用户通过鼠标控制服务器端的计算机。其实现过程是客户端软件先捕捉鼠标在图形化接口(屏幕控制模块所提供的)中的动作,再将这些信息发送到服务器端,最后服务器端的服务程序向操作系统发送这个动作的消息,这样就如同在服务器端的操作系统上进行了相应的鼠标操作。如果动作是在“Microsoft Word”图标上双击,则远程控制系统服务器端的“Microsoft Word”被打开。
(4)键盘控制模块
可以让客户端用户通过键盘控制服务器端计算机的输入,其实现过程是客户端软件先捕捉键盘在图形化接口(屏幕控制模块所提供的)中的动作,再将这些信息发送到服务器端,服务器端的服务程序向操作系统发送这个动作的消息,这样就如同在服务器端的操作系统上进行了相应的键盘输入。如果服务器端的“Microsoft Word”为当前的活动窗口,则客户端的键盘操作就如同有人在服务器端利用“Microsoft Word”进行文字编辑一样。屏幕控制、键盘控制和鼠标控制模块是在网络状况较好的情况下才会有较快的响应速度,如果网络状况不好将采用命令控制模块进行远程控制。这种控制方式有较多的限制,需要根据具体的需求进行设计。
(5)文件传输模块
可以方便客户端和服务器端进行文件传输,他由文件上传和文件下载2个部分组成。文件上传可以把客户端的文件上传到服务器端的计算机上;文件下载可以把服务器端的文件下载到客户端的计算机上。
(6)端口设置模块
配置双方进行通信的端口。
3远程控制系统软件的实现
3.1通信协议的设计
3.1.1系统控制协议
当客户端需要向服务器端发送控制信息时将采用如下的格式:

其中信息格式中各参数的值和含义如表1所示。
3.1.2图片传输协议
图片信息的传输采用Byte的方式,其格式如图2所示.

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

3.1.3文件传输协议
文件传输也采用Byte方式,其传输协议由以下几步组成:
(1)如果是文件上传则发送信息转换成字符串后为“#_CMDFileUp_#”;如果是文件下载则发送信息转换成字符串后为“#_CMDFileDown_#”。
(2)发送源文件名,转换后的字符串为“#_SourceFileName_#”。
(3)发送目的文件名,转换后的字符串为“#_DestinationFileName_#”。
(4)发送文件开始标志,转换后的字符串为“#_Start_#”。
(5)发送文件内容,直到发送完毕。
(6)发送文件结束标志,转换后的字符串为“#_End_#”。
3.2服务器端软件的实现
服务器端软件的实现过程是当客户端要和服务器建立连接时,如果合法则允许建立连接,如果不合法则拒绝建立连接。建立连接后服务器启动服务,监听客户端发送过来的控制信息,然后和客户端协作完成相应的任务。如图4所示。

3.3客户端软件的实现
客户端软件的实现过程是首先向服务器端发送身份信息,请求和服务器建立连接,如果通过验证则定时发送屏幕控制信息,同时接受用户的输入并把其转换成相应的控制信息,然后发送到服务器。如果请求被服务器拒绝则退出应用程序。
4结束
开发这种系统具有实际应用价值,用户可以通过他进行远程办公,软件公司可以通过他对自己的产品进行远程配置以及在线诊断和维护,为公司节约人力、财力和物力。