APP下载

远程通信控制系统的开发与实现

2017-02-20金诗淇

数码世界 2017年2期
关键词:即时通讯服务器端鼠标

金诗淇

辽宁锦州渤海大学工学院

远程通信控制系统的开发与实现

金诗淇

辽宁锦州渤海大学工学院

随着计算机网络持续不断地发展,远程控制技术越来越受到人们的青睐,通过远程控制系统可以完成限定目标计算机以及远程操作计算机等功能。本文所设计的远程通信控制系统是基于C/S的开发模式,主要介绍了系统设计开发的功能需求,并提出了系统设计的总体方案,阐述了系统的详细设计。整个系统界面友好,实现了即时通讯、文件传输、屏幕截图、命令传输等功能,基本达到了远程通信控制系统相应的要求。

远程控制 C/S模式 TCP

1 引言

远程控制一般支持的网络方式有:广域网、局域网、拨号方式、互联网方式。另外,有些远程控制软件还可以通过串口、并口实现对远距离的计算机的操控。远程通信包含了很多功能,包括能够获取目标计算机系统的信息和登录口令等各种秘密类信息,能够自动地跟踪目标计算机的屏幕图像的变化,能够任意操作目标计算机的文件,能够限制目标计算机系统的功能,能够实现远程开关机、发送文字文件等。

网络远程控制技术不断发展,于是出现了网上监控,比如学校机房教师终端能监视学生端电脑屏幕。将远程控制应用于局域网管理中,已成为目前局域网管理的重要手段。远程控制技术最早应用在网络中是在DOS时代,随着计算机网络持续不断地发展,以及计算机的管理和技术支持的需要,远程控制技术越来越受到人们的青睐。

2 系统功能需求

本系统是远程通信控制系统,其基于C/S模式,主要有客户端程序和服务器端程序。服务器端负责监听来自客户端的登录请求,实现身份认证功能;为客户端截获屏幕图像,并传回客户端;接收客户端发送的鼠标和键盘命令,并负责解释执行;还能与客户端进行简单的即时通讯和文件传输。客户端实现用户注册、用户登录,接收服务器端传回的屏幕图像,向服务器端发送鼠标和键盘命令,还能与服务器端进行简单的即时通讯和文件传输。系统功能结构图如图1所示:

图1 系统功能结构图

3 总体设计

本文设计的远程通信控制系统主要包括客户端程序设计和服务器端程序设计两个方面。系统通过Socket编程接口,采用TCP协议实现客户端程序和服务器端程序的数据交换。

3.1 即时通讯模块

即时通讯模块主要是实现客户端与服务器端聊天功能。主要实现过程是:在信息输入框键入要发送的消息后选择发送,则会在各自界面上显示。若是客户端发送的消息,会在聊天界面上显示年月日时间+某某(注册后的用户名)+发送的文字;若是服务器端发送了消息,也会显示在聊天界面上。

3.2 文件传输模块

文件传输模块包括文件上传与下载,实现了客户端与服务器端文件的双向传输。实现文件传输的过程为:在客户端选择一个文件并将它发送给服务器端,服务器端会出现提示框,提示用户是否对文件进行接收,若是选择接收文件,在客户端会显示文件传输成功。相反,服务器端发送文件也是如此。

3.3 屏幕截获模块

屏幕截获模块包括屏幕图像的抓取、压缩、发送与接收。主要实现过程是:客户端向服务器端发送一个截屏命令,服务器端接收到截屏命令后抓取当前的屏幕图像,因为抓取的位图数据量很大,所以在将屏幕图像传回客户端前应该对截取的屏幕图像进行压缩,这样客户端可以查看到服务器端的屏幕。

3.4 远程控制模块

远程控制模块涉及鼠标、键盘的操作,在客户端模拟响应用户的鼠标点击或键盘的录入,这些信息通过网络传送到服务器端,让服务器端主机真正地执行。客户端捕捉鼠标或键盘在图形化接口中的动作,包括鼠标的动作和坐标、键盘的录入,然后将这些信息通过网络发送到服务器端,服务器端计算机的服务程序就会发送这些消息给操作系统。实现过程是在客户端显示的从服务器端发来的屏幕图像上进行鼠标操作,包括鼠标左键单双击和右键单击,相应的操作命令通过网络传送到服务器端,服务器端接收到命令后执行。

4 系统详细设计

4.1 客户端与服务器端连接设计

客户端与服务器端建立连接从而实现通信是系统的核心关键。本系统没有直接使用Socket类,而是使用了TcpListener类和TcpClient类。这两个类属于.NET框架下网络通信中的应用层,提供了一种简单、友好的套接字通信接口。这些应用层类是Socket类的封装,提供了比Socket类更高层次的抽象,从而不用关心处理连接的细节。TcpListener类是在服务器端使用,它的作用是监听从客户端传来的TCP连接请求。TcpClient类是在客户端使用,它的作用是允许创建和使用TCP连接。

客户端与服务器端建立连接实现通信的具体实现过程为:客户端创建TcpClient类的实例对象client,服务器端创建TcpListener类的实例对象listener,listener调用Start()方法启动监听,当监听到客户端连接后,实例对象listener使用AcceptTcpClient()方法接受来自客户端的TCP连接。客户端与服务器端连接成功后,client使用GetStream()方法获得客户端网络数据流,下面就是用数据流的方法来进行数据的发送和接收。

4.2 主要模块具体实现

4.2.1 即时通讯模块

客户端在richTextBoxSend中键入消息,按下buttonSend键,系统使用getTalkMessage()方法得到键入的文字消息,并调用Common类中的convertMessageToByte()方法将消息转化为字节,然后利用流发送出去,并在richTextBoxMessage中显示年月日时间+某某(注册时的用户名)+发送的文字消息。若服务器回复消息,在richTextBoxMessage中则显示年月日时间+服务器+发送的文字消息。如图2所示:

图2 即时通讯模块

4.2.2 文件传输模块

在客户端按下该按钮,选择相应的文件进行发送,系统调用Common类相应的方法将文件转化为流,然后利用流将文件发送出去,此时服务器端会被提醒是否接收文件,若接收文件,传输成功后可以在res文件夹中查看到文件。因为将文件转化为流进行传输,所以该系统能实现任意类型文件的传输。

4.2.3 屏幕截获模块

屏幕截获模块具体实现过程为:客户端按下buttonPrtSc键,向服务器端发送截屏命令,服务器端接收到命令后利用上面提到的方式截屏,将截获的屏幕图像按比例压缩,最后将它转化为流的方式传回客户端,同时在客户端主界面的PictureBox中显示。该系统实现了在客户端发送截屏命令后,服务器端每隔50ms抓取一次屏幕图像并传回客户端。

4.2.4 远程控制模块

远程控制模块主要实现了客户端在截获的屏幕上的鼠标操作,还有CMD指令操作。鼠标操作模块调用Windows系统函数SetCursorPos(int X,int Y),该函数的参数X和Y指定了屏幕的新的X、Y坐标,作用是将光标移动到屏幕的指定位置。实现鼠标控制的过程是:在截获的屏幕图像上进行鼠标操作,如单击右键,系统将鼠标在屏幕上的坐标位置动作发送到服务器端,服务器端接收到这些信息后真正执行。远程控制模块包括鼠标和键盘操作。鼠标操作包括鼠标左键单击、双击和右键单击,在客户端界面进行鼠标操作,服务器端桌面会响应,就好直接在服务器电脑上进行操作一样。在“截图”页面,双击文件“基础知识.txt”,服务器端就会把该文件打开,如图3所示:

图3 远程控制模块

5 结论

本系统采用C/S模式,包括客户端和服务器端,设计完成了远程通信控制系统。基本达到了网络通信和远程控制的功能需求,实现了客户端和服务器端即时通讯、文件传输、远程监控、简单的远程鼠标控制等基本功能。

[1]朱正礼.计算机远程控制系统的设计与实现[J].信息技术,2006,12

[2]华龙.计算机远程控制技术的原理与实现[J].天津农学院学报,2007,03

[3]任保献,马磊.基于C/S的远程控制系统的设计与实现[J].安阳师范学院学报,2005,02

[4]孙亚.远程图像传输及屏幕抓取的原理与实现[J].内蒙古电大学刊,2003,01

[5]刘旭东.一种远程控制系统的设计与实现[J].微型电脑应用,2006,03:26-28+67

[6]Alan Shalloway James R. Trott 著. Design Patterns Explained[M].中国电力出版社,2003-7

[7]徐向阳,曹帮琴.差异截图法实现屏幕图像快速传输[J].南阳师范学院学报,2007,09:63-65

[8]董祖雄,谢捷生.远程屏幕传输系统及其构架方案[J].中国农业大学学报,2001,04:89-92

[9]张英,王景新.网络安全基础[M].北京:中国电力出版社,2004:45-126

[10]宋彦儒,周翔.计算机远程控制系统设计[J].科技广场,2008,12:61-62

猜你喜欢

即时通讯服务器端鼠标
Linux环境下基于Socket的数据传输软件设计
即时通讯在高校体育教学中的应用研究
基于Qt的安全即时通讯软件服务器端设计
即时通讯软件发展模型的实证研究
基于Qt的网络聊天软件服务器端设计
科学技术哲学视域下的即时通讯
即时通讯软件WhatsApp
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
鼠标折叠笔
45岁的鼠标