0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过利用服务器端和客户端实现远程控制系统的创建

电子设计 来源:郭婷 作者:电子设计 2019-10-25 07:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

目前,随着计算机网络的广泛应用,无纸办公和远程办公是人们经常谈及的话题,为了实现计算机网络的这种应用,方便人们工作,本文提出了一种远程控制系统。为了实现这个系统,首先从系统所要实现的功能着手,设计出该系统的体系结构,并详细说明体系结构中各模块的主要功能;接着从通信效率和网络环境方面考虑,设计出适合于该系统的通信协议;最后以流程图的方式详细说明系统软件的实现过程。

1 、引言

随着计算机网络的飞速发展,人们可以很方便地从Internet上获取和自己工作生活密切相关 的信息,世界也真正变成一个地球村,我们可以和世界上其他任何一个人通过计算机网络进行沟通,信息资源达到了高度的共享。从这一点得到启发,希望能够设计一个远程控制系统,通过他可以在家里控制办公室里的计算机。如果你是软件开发商,你的员工可以通过他在办公室里远程为客户配置系统、对产品进行维护,如果客户向你报告软件产品出现问题你可以远程对产品进行调试,最终解决问题。这样员工就不会因长期的劳苦奔波而抱怨,用户也不会因为你不能及时解决产品的问题而和你讨价还价,当然也为公司节约了人力和财力。下面详述该远程控制系统是如何实现的。

通过利用服务器端和客户端实现远程控制系统的创建

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 、结语

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


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制系统
    +关注

    关注

    41

    文章

    6893

    浏览量

    113552
  • 计算机
    +关注

    关注

    19

    文章

    7764

    浏览量

    92674
  • 服务器
    +关注

    关注

    13

    文章

    10094

    浏览量

    90873
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用lwip socket udp功能,开发板为客户端时不能够接收服务器端发送过来的数据 ?

    请教下,使用 lwip socket udp 功能,开发板为客户端时不能够接收服务器端发送过来的数据 ? 1,如果开发板为 服务器端,收发都可以 2,如果开发板为 客户端,不能够接
    发表于 04-16 06:01

    用队列实现的1对N的TCP服务器端,自动回复信息总发错客户端

    本帖最后由 kaneiqi1210 于 2014-7-17 12:43 编辑 如题,我仿照教材用队列做的TCP一对多的服务器端,在1对1时,没问题,而在1对多时,就出现,自动回复信息至不正确的客户端(即非发送信息的客户端
    发表于 07-17 09:31

    qt tcp程序在服务器端发送数据之前能接收客户端发送的数据吗?

    写了一个tcp的客户端服务器端,是服务器端客户端发送文件,但是我想在服务器端发送之前先让客户端
    发表于 04-22 20:06

    labview怎么实现服务器端一直等待客户端发送数据啊

    我现在在做labview的服务器端,但是当客户端发送数据结束后,我的服务器端会报错。报错的意思就是说客户端关闭,我想知道怎么实现才可以让
    发表于 08-12 14:34

    为什么LWIP的TCP客户端服务器端断开后继续发送数据就无法检测到连接状态?

    发现LWIP的TCP客户端有个BUG,当服务器端开之后,如果还继续发送数据,那就不能检测到连接状态。求助求助
    发表于 10-29 20:26

    4412开发板Qt网络编程-TCP实现服务器客户端

    更改组件名称注释,完成后如图 : 步骤三:服务器端编程:1.创建 QTcpServer 对象2.创建监听端口,使得客户端可以使用这个端口访问服务器
    发表于 04-28 15:33

    基于嵌入式ARM平台实现远程桌面服务器端客户端应用示例

    实现远程桌面服务器端客户端应用示例。本文演示所使用的ARM平台来自Toradex基于NXP iMX6Q SoC平台的Apalis iMX6 ARM核心板。2).准备...
    发表于 12-14 06:10

    监控系统客户端服务端设计

    项目开发报告1 项目简介1.1 概述1.2 开发环境1.3 其他支持1.4 应用界面1.4.1 服务器端1.4.2 客户端1.5 程序使用2 项目开发2.1 搭建基于实验平台数据库2.1.1 数据库
    发表于 12-21 07:02

    基于因特网的智能远程控制系统的设计

    本文首先介绍了基于因特网的智能远程控制系统的体系结构和使用于系统中的网络数据库关键技术,对多用户同时操作问题、Web 客户端/服务器端动态交互的实现
    发表于 05-26 10:42 13次下载

    基于因特网的智能远程控制系统的设计

    本文首先介绍了基于因特网的智能远程控制系统的体系结构和使用于系统中的网络数据库关键技术,对多用户同时操作问题、Web 客户端/服务器端动态交互的实现
    发表于 06-19 10:20 13次下载

    淘宝商品推广系统服务器端软件的设计与实现

    本文基于淘宝商品推广系统服务器端软件的设计与实现的目的,通过对淘宝商品推广系统服务器端软件中的各
    发表于 12-24 15:43 12次下载

    网络调试和串口调试集合UDP TCP客户端和TCP服务器端应用程序免费下载

    本文档的主要内容详细介绍的是网络调试和串口调试集合UDP TCP客户端和TCP服务器端应用程序免费下载。
    发表于 08-30 08:00 16次下载
    网络调试和串口调试集合UDP TCP<b class='flag-5'>客户端</b>和TCP<b class='flag-5'>服务器端</b>应用程序免费下载

    STM32+LWIP服务器实现客户端连接

    (UCOSIII版本) 的基础上进行修改,实现客户端连接的一个方法。1、TCP服务器创建过程建立一个TCP服务器需要经过
    发表于 12-23 19:59 65次下载
    STM32+LWIP<b class='flag-5'>服务器</b><b class='flag-5'>实现</b>多<b class='flag-5'>客户端</b>连接

    数据是怎么样保证准确的从客户端发送到服务器端

    你有想过吗,在计算机网络当中,数据是怎么样保证准确的从客户端发送到服务器端的?中间涉及到了哪些理论?
    的头像 发表于 07-01 10:09 2805次阅读

    Linux下TCP网络编程-创建服务器客户端

    这篇文章介绍在Linux下的socket编程,完成TCP服务器客户端创建实现数据通信。
    的头像 发表于 08-14 09:26 3313次阅读
    Linux下TCP网络编程-<b class='flag-5'>创建</b><b class='flag-5'>服务器</b>与<b class='flag-5'>客户端</b>