工业计算机远程控制,基于SOCKET技术的计算机远程控制实现

摘要:时至今日,计算机网络已经成为了人类社会生活中必不可少的组成部分,其中计算机的远程控制系统更是为整个社会的进步起到推动作用。除了在工业自动化生产之外,计算机远程控制系统还广泛的应用于办公、技术支持等方面。在本文中,将设计一种简单的基于的SOCKET技术的计算机远程控制系统。

关键词:SOCKET;计算机远程控制

中图分类号:TP273.5文献标识码:A文章编号:1007-9599 (2012) 02-0000-02

Computer Remote Control Based on SOCKET Technology

Chen Shijun

(Hubei Telecom Business Technology,Support Center,Wuhan430015,China)

Abstract:Today,the computer network has become an integral part of human social life,which the computer's remote control system is to play a role in promoting the advancement of society as a whole.In addition to in addition to the production of industrial automation,computer remote control system is also widely used in office,technical support and other aspects.In this paper,design a simple SOCKET technology based on computer remote control system.

Keywords:SOCKET;Computer remote control

一、远程控制系统的意义及理论基础

(一)远程控制系统的意义

计算机远程控制对于整个互联网络而言具有重要的意义,无论是正面意义的远程技术支持还是反面意义的后门犯罪从发展的角度来看都对计算机及网络技术起到了一个推动作用,而科学技术是第一生产力,技术的进步对于整个社会来说就有意义,尤其是现在的计算机已经渗透到人们生活中的每一个角落,所以本文吸收以往的一些远程控制系统的优点并结合自己的理念设计了一套基于SOCKET技术的计算机远程控制系统。

(二)远程控制系统的理论基础

本文设计的远程控制系统是基于SOCKET的,也就是俗称的“套接字”,使用SOCKET有以下优点:

1.减少了网络通信的技术难度,SOCKET有标准的函数支持,具有标准的使用方法。

2.可以轻松的实现跨平台,目前基本所有的系统,windows、linux、unix及嵌入式系统、PLC等全部支持SOCKET。

综上所述,基于SOCKET设计计算机远程控制系统是可行的。

二、远程控制系统的整体构架

(一)传输协议的选择

在TCP/IP的传输层上,存在着两种可以使用的通信协议,一种是UDP,另一种是TCP。UDP协议能够提供的是一种不可靠的服务,不可能保证数据在传输过程中不出现差错;TCP协议是一种能提供双向有序、且保证数据包可靠收发的协议。在远程控制系统中,安全是第一个要考虑的问题,所以本文设计的远程控制系统使用TCP作为传输协议。

(二)使用模型的选择

本文设计的远程控制模式为一控多,既由一台主计算机控制其他计算机,在模型上更加贴近于C/S模型,虽然使用C/S模型增加了客户端程序设计的难度,但是C/S处理数据快速、准确、安全、封闭性能好,可以很好的抵抗干扰,并且可以快速的响应远程操作请求,所以本系统使用C/S模型。

(三)控制端需求设计

控制端要求有以下三点:

1.能向指定的被控端发送操作指令。在指令中包含两个部分:一是被控端地址,二是操作代码。

2.可接受被控端返回的信息。当控制端受到被控端返回的信息时应该能分析出该信息的来源是否正确,数据包结构是否合法,并能将合法的数据包解析为可理解的信息呈现给控制者。

3.可以提供数据加密服务。为了更好的保证系统的安全性,必须使用一套安全可靠的密码机制,所以要求控制端应该能与被控端建立可靠的安全的连接,并用该链接传输加密后的数据包。

(四)被控端需求设计

被控端主要承担四个工作:

1.对控制端发送过来的操作代码的解析与执行。要求被控端可以验证操作代码来源,分析操作代码是否合理,合理的话要求被控端可以执行控制端要求的操作。

2.将操作结果反馈给控制端。要求被控端必须收集每一步操作产生的日志信息,当控制端需要查看结果时,可以将信息传递回控制端。

3.提供数据加密服务。被控端的数据加密服务与控制端的数据加密服务目的相同,但是实现方法有差别,两者代码部分重合,但并不通用。

4.提供自我保护服务。避免被控端误操作脱离控制端的控制。

三、控制端具体设计

(一)控制端工作使用线程如下

1.常驻监听线程,用以打开一个指定的端口,对该端口进行监听,等待由被控端主动发起的连接请求。

2.图形界面,用做与控制者交互,使用该界面与其他服务线程联系并且作为操作者操作翻译、确认以及显示接受到的由被控端发送的数据内容。在面向使用者的设计中,图形界面可完成以下任务:

(1)连接到指定的被控端IP。(2)显示连接列表。(3)断开与某被控端的IP。(4)向某被控端发送操作命令,操作指令可以是以下内容:直接交由被控端执行的命令,此类命令既可以人工键入,也可由软件自动生成。控制被控端返回状态的命令。(5)显示被控端状态。可以是图像,文字等。

3.加密服务线程,由图形界面临时创立,负责接受图形界面发送过来的用户操作编码,并将其根据传输通道建立时随机产生的密钥进行加密或解密操作,图形界面会根据使用需求不同传递进不同的参数,该线程会根据参数选择是加密后送入传输线程发送还是加密后向图形界面返回明文。其基本流程如下:

首先检查图形界面传递进的参数含义是加密还是解密,如果是加密则将图形界面传递的参数对指定数据进行加密,加密后的数据直接送入传输线程;如果是解密,则对指定数据解密,之后返回解密后的数据地址指针以及数据长度。

4.传输线程,该线程负责使用建立的传输通道传送数据,由图形界面创立,当常驻监听线程监听到被控端连接请求并交给图形界面同意后或者由使用者操作图形界面直接发起向被控端连接的请求同意后创立,该线程的基本流程如下:

首先该线程打开特定端口与被控端建立明文连接,之后建立安全通道建立线程建立安全通道,当通道建立后既进入等待中,其生命周期从建立开始到控制者操作图形界面停止与被控端连接为止。。

5.安全通道建立线程,由传输线程建立。发起连接者不同,建立条件也有差异。其操作流程如下:

首先被控端使用控制端公钥加密得到的随机对称式密钥K1并发送至控制端,之后控制端使用公钥解密得到K1并用K1加密K1,将密文发送至被控端,然后被控端用K1解密密文并与K1进行比较,判断是否正确,如果正确,那么建立连接,使用的通信密钥为K1。如果由连接请求是由控制端发起,则多加一个控制端要求被控端发起连接的公开请求过程。

四、被控端具体设计

被控端与控制端有着诸多的相同点,包括常驻监听线程、加密服务线程、传输线程、安全通道建立线程。不同的是被控端没有图形界面,所有的操作全部为后台进行,而且被控端多加了自我保护服务,用以保护被控端的可控性。其不同的地方设计如下:

(一)后台操作线程。该线程起到的功能相当于控制端的图形界面所起到的中枢功能。当该线程接受到控制端发送过来的指令时,首先做的也是解密翻译,之后根据命令的不同执行不同的操作。操作有以下几类:

1.直接交由操作系统执行命令并记录返回情况;2.控制计算机的输入设备并记录返回情况;3.控制计算机的输出设备并记录返回情况;4.向控制端发送记录的返回情况。

(二)自我保护线程。该线程设计运行于计算机的RING0层,并运用ROOKIT手法以及软件安全技术屏蔽一切对本线程不利的操作,用以保证被控端的可控性。其监控方面有以下几个:

1.计算机驱动的加载;2.输入输出设备;3.文件系统变动;4.应用程序的危险操作。

通过以上的防护措施,基本上可以保证控制端对于被控端的控制,达到远程控制的目的。

参考文献

[1]田鹏.基于WEB的远程控制系统设计[D].兰州大学,2011

[2]马强.计算机网络远程控制系统的研究与应用[D].中国地质大学,2007

[3]王涛.基于安全模式的软件安全设计方法[D].吉林大学,2011

[4]朗波,王晓青.基于计算机网络远程控制系统的图像传输实现策略[J].青海大学学报(自然科学版),2008

[5]朱庆军,丁志刚,吕卫阳.基于C/S模式的智能相机远程控制系统研究[J].电气应用,2008(08)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

efi分区咋移动到c盘里_如何移动的EFI系统分区

如何安全找回丢失数据的方法1. 下载并安装B计划数据恢复软件。2. 运行恢复软件,点击“深度扫描”。深度扫描是绕过文件系统直接从硬盘、U盘、SD卡等设备底层恢复数据,因此使用深度恢复能找回更多完整数据。同时我们要搞清楚物理硬盘和逻辑硬盘的区别。物…

东北农业大学考研计算机大纲,东北农业大学(专业学位)计算机技术研究生考试科目和考研参考书目...

考研真题资料优惠价原价选择东北农业大学(专业学位)计算机技术教材,也叫东北农业大学(专业学位)计算机技术考研参考书、指定书目等等,是考验专业课复习过程中最重要的资料。考研是一种针对性很强的考试项目,参考书目由报考院校的研究生院制定…

matlab 功率谱密度 汉宁窗_[振动与测试 2] 什么是PSD(功率谱密度)

上接前章(数字信号处理的基本概念),今天给大家介绍下振动测试中最常见的一个概念PSD,即所谓的功率谱密度(Power Spectral Density),以及其与Autopower(自功率谱)的区别。自功率谱现在…

gsm模块网站服务器,gsm模块是什么_gsm模块工作原理_gsm模块的应用

描述gsm模块是什么GSM模块,是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。GSM模块具有发送SMS短信,语音通话,GPRS数据传输等基于GS…

exec go 重启_如何用 Go 实现热重启

热重启热重启(Zero Downtime),指新老进程无缝切换,在替换过程中可保持对 client 的服务。原理父进程监听重启信号在收到重启信号后,父进程调用 fork ,同时传递 socket 描述符给子进程子进程接收并监听父进程传递的 socket 描述符在…

计算机关闭窗口可以使用alt,禁止使用Alt+F4关闭窗口完整代码

声明:Private Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As LongPrivate Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPositio…

df添加一行 python_Python为输出的数据绘制表格

在Python开发环境中,输出数据时没有表格、没有对齐,当数据较多的情况下看起来非常的凌乱,估计很多人像我一样为这个事情而烦恼。左图是我在PyCharm开发环境下输出的数据。下面我们通过Python的Texttable模块为数据添加表格框线,对…

交换机指定外部DHCP服务器,H3C交换机DHCP服务器设置步骤

H3C交换机DHCP服务器设置步骤一 DHCP服务器设置步骤如下:1)安装好Linux操作系统,我用的发行版本是CentOS 5.2。2)设置服务器的网络参数如下IP地址:192.168.6.7子网掩码:255.255.255.0网关:192.168.6.254DNS:192.168.6.103)安装DHCP服务CentOS和Red Hat …

echarts 折线上写数值_前端ECharts数据可视化图表案例与介绍

什么是ECharts?ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级…

计算机里的及格率和有优秀率怎么算,excel表格计算优秀及格率的教程

Excel中的优秀率具体该如何计算呢?下面是由学习啦小编分享的excel表格计算优秀及格率的教程,以供大家阅读和学习。excel表格计算优秀及格率的教程计算优秀及格率步骤1:打开EXCEL软件,使用手动创建一些基础数据,如图。完成该函数的…

concat合并的数组会有顺序么_超全的JS常用数组方法整理

前言常用数组方法汇总方法解析1:concat();2:join();3:pop();4:shift();5:unshift();7:reverse();8:sort();9:slice();10:splice();11:toString();12&#xff…

css如何插入动态图,css动态图(作业)

loading动画.box{width: 300px;height: 135px;border: 2px solid #000;margin: 200px auto 0;}.box p{text-align: center;width: 100%;}.box div{width: 30px;height: 70px;float: left;background-color: gold;margin: 15px;border-radius: 10px;}.box div:nth-child(1){back…

in ms sql 集合参数传递_mybatis从入门到精通,第三篇《动态SQL》,干货满满

动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底…

保存图像_06 - matplotlib中应知应会numpy存储、交换图像

matplotlib中应知应会numpy存储、交换图像numpy的ndarray是mpl官方推荐的输入数据结构mpl官方推荐绘图时,应以numpy的ndarray数据结构输入数据。虽然有时用pandas中的两个数据结构、python的list等数据结构也可以,但不能保证都能成功。这是因为numpy的nd…

css设置按钮竖直方向居中_如何借助伪元素实现垂直居中?

点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!今天给大家讲一种实现垂直居中的方法:伪元素法(::before/::after)一、vertical-align实现了什么?先来看一下vertical-align实现了什么&#xff0…

ajax和fetch哪个好,axios和ajax,fetch的区别

1,传统 Ajax 指的是 XMLHttpRequest(XHR), 最早出现的发送后端请求技术,隶属于原始js中,核心使用XMLHttpRequest对象,多个请求之间如果有先后关系的话,就会出现回调地狱。JQuery ajax 是对原生XHR的封装&am…

九年级数学解方程50道_【初中数学】北师大版九年级上册数学知识点总结

这里整理了一份【初中数学】北师大版九年级上册数学知识点总结其他版本的总结后面会更新资料有点多,建议先收藏完整版资料下载可搜【初中复习资料】回复【399】(资料整理不易,可以收藏-转发支持一下吗)资料有点多,建议…

按钮传值给ajax,用jquery和ajax实现分页时,按钮怎么给jquery传值?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼function changepage(page){$.post("pages.php",{page:page},function(data){$("#pagetable").html(data);})}$(document).ready(function(){changepage(1);$("#firstpage").click(function(){chang…

小米9私密相册怎么找_“拼藏搜”,手机相册还能这么玩

发朋友圈九图不够看?私密照片不想被轻易看到?照片太多找半天太麻烦?别着急,学会这几招,成为“制片人”。第一招:“拼”成为“制片人”的第一步,当然是制作照片了!拼出有feel的图就靠…

路由虚拟端口配置dhcp服务器,交换机和路由器DHCP设置中的端口配置

在利用交换机和路由器进行DHCP的设置的时候,端口的配置是非常重要的。这里我们就来针对这个情况进行一下实例讲解。网络环境:一台3550EMI交换机,划分三个vlan,vlan2 为服务器所在网络,命名为server,IP地址段为192.168.2.0,子网掩码…