ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:321.69KB ,
资源ID:10988025      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10988025.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(论远程控制系统设计与开发主控端模块设计大学本科毕业论文.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

论远程控制系统设计与开发主控端模块设计大学本科毕业论文.docx

1、论远程控制系统设计与开发主控端模块设计大学本科毕业论文论远程控制系统设计与开发主控端模块设计摘 要随着现今社会计算机的广泛普及以及网络的快速发展给远程控制系统带来了广阔的用武之地,人们可以通过简单的终端机完全控制网络另一端的被控机,从而完成强大的控制功能,获取被控机的任何信息,这种方式被称之为远程控制。简单远程控制系统由主控端和被控端两部分组成。主控端用于实施各种对联网计算机的监控操作,被控端对于接收到的数据进行分析,解释并执行。系统主要可以实现获取被控端信息、被控端系统控制、消息发送等。本文对远程控制系统原理和主要相关技术作了简单介绍,在进行需求分析之后,详细描述了本系统的被控端的设计与实现

2、,最后表格形式给出测试结果。关键词: 远程控制 C/S 模式 套接字 信息安全 Simple Remote Control System The Design of master control TerminalAbstractWith the wide use of computer and the rapid development of network, the remote control system is used far and wide. Just through simple manipulate of the terminal, people can completely

3、control the computer on the other side, including obtain the system information of the computer, and implement powerful functions. It is so-called remote control. The simple remote control system consists of two parts including controlling terminal and controlled terminal. We can monitor the control

4、led terminal and implement some operation about controlling the controlled terminal on the controlling monitor. The controlled terminal is used for analyzing, explaining and implement the received data. The system can implement the function of getting the information of controlled terminal, control

5、controlled terminal, sending messages, and so on. The paper simply introduces the theory of remote control and the main technology. After the analysis, it describes the design and implement of the controlled terminal. At last, it shows the result in form of figures.Key words: Remote control Client/S

6、erver mode Socket Information security1.绪论因特网的出现及其发展推动了科学技术的各个方面,并使之取得了巨大的进步,利用因特网,可以使远程控制技术得到大范围的应用,从而方便人们的生活。1.1 课题研究背景随着社会、科技、经济的不断发展,远程控制技术的应用范围也在不断拓展,从最初银行、军事、机要部门等特殊行业领域的应用已经延伸到了今天的电业部门、商业部门、普通工矿企业、道路交通领域、学校教学应用、卫生医疗部门以及宾馆酒店行业等等,其卓越的功能也日益受到各个应用行业的重视和青睐,但是许多远程监控软件都需要配有硬件设备,这不仅使得实际应用的成本升高,而且也使实施

7、应用增加了技术障碍。虽然有诸多问题的存在,但是我们应该认识到远程控制技术的研究,不仅充分利用了现有资源,拓宽了因特网的利用范围,而且也使远程控制能够减少成本扩大远程化距离,实现任意节点的访问机制,并进入一般的应用领域,比如,进入家庭,人们通过因特网控制家用电器,采用因特网作为远程控制平台,是一项很有前途和潜力的技术,另外它可以应用到设备远程诊断、远程监测、遥控等领域。通常企业内部或者IT公司的客户技术支持部门都有技术支持业务其任务是通过电话解答疑难问题,努力减少技术人员到现场服务或让用户把设备送到支持中心进行维护。这种技术支持方式尽管被普遍采用,但效率不高而且大大增加了技术支持成本。远程控制软

8、件能使技术人员直接操作远程计算机,就像操作本地机器一样,无需用户介入,技术人员既能得到该机器的一手资料,从而加快了问题的解决。实际上,使用远程控制工具的技术人员能够做到解答疑难问题,安装和配置软件,把软件下载到用户计算机上,配置应用程序和系统软件设置并可通过实际操作培训用户。 1.2国内外研究现状目前,基于因特网的远程控制国内外都有不同程度的研究。相对来说,由于西方国家在信息技术和计算机控制技术的发展上的优势,他们在研究远程控制方面相对早些,而且有些公司有相关的初级产品问世。国内由于因特网的飞速发展,近几年也开始积极的研究。国内外在基于因特网的远程机器人控制方面的研究相对其他领域要多一些。例如

9、美国伯克立大学研制的是一个通过因特网远程控制的种植花草 工业机器人手臂。拥护通过机器人手臂上的摄像机所传输的图像,对这个花园内进行简单的操作。这些基于因特网的远程控制系统普遍采用了客户/服务器网络模型,现场采用摄像机来监视,并通过网络发出指令。当前,由于网络基础设施还不够完善,所以监视图像由于数据量大,其传输时间过长。即使是采用了数据压缩技术,也仍然有很大的数据量需要传输,因而由此产生的远程控制时间延迟也必然很大。此外,这类系统普遍采用瘦客户/肥服务器的网络模型,监控端的控制操作功能过于简单,都只是发一些简单的指令,而不能实现一些复杂的必要的逻辑处理功能。第三,这类系统在处理上由于时间延迟影响

10、现场控制系统不稳定时,仍然采用的执行-等待-执行-等待的单步执行流程,生产设备运行效率相当低下,第四,大量的采用以图像监视为主的方式,虽然可以使得监控人员更能直观的感受到现场情况,便与监控人员的控制;但是我们应该注意到,有些设备的被监控状态是难以用图像方式表示出来的,比如温度、速度、压力这类精确的数值量;此外有些采用图像传输的数据量也可以采用通过数据传输关键数据以在监控端进行实况模拟图,这样就会减少数据量,而使数据传输速度大大提高。1.3课题研究的主要内容和方法本课题的研究主要内容主要包括以下几个方面:1.简单远程控制系统相关理论研究2.简单远程控制系统总体结构3.简单远程控制系统的功能模块的

11、设计4.简单远程控制系统功能模块的编程实现本软件用C+语言编写,采用的是C/S结构,一个客户端,一个服务器端。客户端是控制端,服务器端是被控制端。主要功能就是通过本地计算机,控制远程的另一台计算机的键盘。主要思路是先用Win socket建立两边的连接,客户端向服务端发送键码,服务器端得到键码后模拟出按键事件。1.4主要工作分配该系统软件是本人与肖星辰同学共同研究开发的,肖星辰同学主要负责被控端的设计与开发,本人主要负责主控端和部分被控端(获取被控端信息)的设计与开发。本人在系统开发中的具体工作:1.搜寻与系统开发相关的资料,熟悉C+开发语言。2.完成主控端与被控端的连接。3.完成主控端模块的

12、程序代码。4.与肖星辰同学一起对系统进行调试和测试。5.归并相关系统开发文档,完成毕业论文的撰写。2 简单远程控制系统相关理论2.1 远程控制系统概述远程控制软件实际上是一种客户机/服务器程序,服务器程序安装在被控制的计算机端,客户机安装在控制端。在客户端和服务器端都安装成功之后,客户端在网络上搜寻已经安装了服务器的远程计算机;然后,客户端就发指令获得服务器端的连接指令,两台PC建立起连接,就可以通过网络的互连协议TCP/IP协议进行远端控制。2.2 TCP协议TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。TCP提供的是

13、一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向上传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。面向连接的服务(例如Teln

14、et、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。TCP基础:数据传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可彼此进行数据传输。如果创建客户应用程序,就必须知道服务器计算机名或者 IP 地址(远程主机)属性,还要知道进行“侦听”的端口(远程端口)属性,然后调用Connect方法。如果创建服务器应用程序,就应设置一个收听端口(本地端口)属性并调用 Listen 方法。当客户计算机需要连接时就会发生Connection Request事件。为了完

15、成连接,可调用Connection Request事件内的Accept方法。建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用 Send Data方法。当接收数据时会发生Data Arrival事件。调用Data Arrival事件内的Get Data方法就可获取数据。2.3 UDP协议UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出丢包现象,实际应用中要求程序员编程验证。UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚

16、电路的面向连接的服务,UDP主要用于那些面向查询-应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。UDP基础:用户数据文报协议(UDP)是一个无连接协议。跟TCP的操作不同,计算机并不建立连接。另外UDP应用程序可以是客户机,也可以是服务器。为了传输数据,首先要设置客户计算机的Local Port属性。然后,服务器计算机只需将Rem

17、ote Host设置为客户计算机的Internet地址,并将 Remote Port属性设置为跟客户计算机的Local Port属性相同的端口,并调用 Send Data方法来着手发送信息。于是,客户计算机使用Data Arrival事件内的 Get Data方法来获取已发送的信息。2.4 Socket套接字在远程控制软件中,对于主控机和受控机进行的数据通信所使用的主要技术就是网络编程技术和系统编程技术。随着计算机网络技术的发展TCP/IP协议,被集成到操作系统内核中时,相当于在操作系统中引入了一种新型的输入/输出操作,操作系统拥护进程与网络的交互作用比用户进程与传统的输入/输出设备互相作用复

18、杂的多。首先,进行网络操作的两个进程不在同机器上,如何建立它们之间的联系?其次,有很多种网络协议,如何建立一种通用机制以支持多种协议?这些都是网络应用变成所要解决的问题。20世纪80年代初,美国政府的高级研究工程机构ARPA给加利福尼亚大学BERKELEY分校提供了奖金,让他们在UNIX操作系统下实现TCP/IP协议。在这个项目中,研究人员为TCP/IP网络通信开发了一个应用程序接口API。这个API就称为SOCKET(套接字)接口,今天SOCKET接口是TCP/IP网络最为通用的API,也是在INTERNET上进行应用开发最为通用的API。实际上,Socket在计算机中提供了一个通信端口(套

19、接口)。通过这个端口,一台计算机可以与任何一台具有Socket接口的计算机通信。通信的借口是套接口,一个套接口是通信的一端,在这一端上可以找到与其对应的一个名字。一个正在被使用的套接口都有他的类型和与其相关的进程,套接口存在于通信域中。一个套接口通常和同一个域中的套接口交换数据(数据交换也可以穿越域的界限,但这时一定要执行某种解释程序。)应用程序在网络上传输,接受的信息都是通过这个套接口来实现。在应用开发中就像使用文件句柄一样,可以对Socket句柄进行读写操作。开始使用套接字编程之前,首先必须建立这些概念:网间进程通讯,服务方式,客户机/服务器模式。进程通信的概念最初来源与单机系统。由于每个

20、进程都在自己的地址范围内运行,为保证量相互通信的进程之间既互不干涉又能协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD中的管道(Pipe)、命名管道(Named Pipe)和软中断信号(Signal)、UNIX System V的消息(Message)、共享存储区(Shared Memory)和信号量(Semaphore)等,但都仅限于用在本机进程之间的通信。网间进程通信要解决的是不同计算机进程间的相互通信问题(可把同机进程通信看成是其中的一个特例)。为此,首先要解决的是网间进程标识问题,同一计算机上,不同进程可以用进程号(Process ID)作为唯一标识,但在网络环境下,

21、各个计算机独立分配的进程号不能唯一的标识该进程。例如,计算机甲赋予某进程号48,在乙计算机中也可以存在48号进程,因此,“48号进程”这句话就没有意义了。其次,操作系统支持的网络协议众多,不同的协议的工作方式不同,地址格式也不一样,因此,网间进程通信还要解决多重协议的识别问题。在网络分层结构中,各层之间是严格单向依赖的,各个层次的分工和协作集中体现在相邻层之间的界面上。“服务”是描述相邻层之间关系的抽象概念,即网络中各层向紧邻上层提供的一组操作。下层是服务提供者,上层是请求服务的用户。服务的表现形式是原语(Primitive),如系统调用或库函数等。系统调用是操作系统内核向网络应用程序或高层协

22、议提供的服务原语。在国际标准化组织(ISO)的术语中,网络层及其以下各层又称为通信子网,只是提供点到点的通信,没有程序或进程的概念。而传输层实现的是“端到端”通信,引进网间进程通信概念,同时也要解决差错控制、流量控制、数据排序(报文排序)及连接管理等问题。为此提供不同的服务方式:面向连接(虚电路)的服务或无连接的服务。面向连接服务是电话系统服务模式的抽象,即每一次完整的数据传输都要经过建立连接,使用连接及终止连接的过程。在数据传输过程中,各数据分组不携带目的地址,而使用连接号(Connect ID)。本质上,连接是一个管道,收发数据不但顺序一致,而且内容相同。其中TCP协议就提供面向连接的虚电

23、路。无连接的服务是邮政系统服务的抽象,每个分组都携带完整的目的地址,各分组在系统中独立传送。无连接服务不能保证分组的先后顺序,不进行分组出错的恢复与重传,不保证传输的可靠性。提供无连接的数据报服务的常用协议是UDP协议。在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式就是客户机/服务器模式(Client/Server)。即客户向服务发出服务请求,服务接收到请求后,提供相应的服务。客户机/服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用;其次,网间进程通信完全

24、是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为两者的数据交换提供同步,这就是基于客户机/服务器式的TCP/IP。2.4.1基本套接字函数调用大多数的数据报套接字应用程序都使用一个规定的事件序列来完成客户应用程序与服务器应用程序间的通信,如图2-1所示:图2-1首先,客户端和服务器端都要创建一个数据报套接字。接着,服务器调用bind()函数给套接字分配工人的端口(在开发应用程序时,这个公认的端口通常时指定的。例如本程序的端口就指定为80)。这样,客户端和服务器端就使用同一个端口来表示服务器套接字。一旦服务器将公认的端口分配给了套接字

25、,客户端和服务器端都能使用sendto()和recvfrom()来发送和接收数据报直到完成传输。然后调用closesocket()来关闭套接字。下面具体看从给定套接字的一个地址开始的每一步工作时怎样进行的。2.4.2 创建套接字系统调用socket()函数向应用程序提供套接字手段时的声明如下:SOCKET PASCAL FAR socket(int af, int type, int protocol);该函数有三个参数,其中参数af指定通信发生的区域,在DOS,Windows系统中支持AF_INET,它时网际网区域。 参数type描述要建立套接字的类型。也就是指是流式套接字还是数据报套接字。

26、 参数protocol说明该套接字使用的协议,如果该参数为0,则表示使用默认的连接模式。Socket()函数根据这三个参数建立一个套接字,并将相应的资源分配给它,同时返回一个整形套接字句柄。2.4.3 指定本机地址当一个套接字用socket()创建以后,bind()将套接字地址(主机地址和端口)与所创建的套接字编号联系起来,即将名字赋予套接字。bind()声明如下: int PASCAL FAR bind(SOCKET s, const struct sockaddr FAR *name, int namelen);bind()函数共有三个参数,其中参数s是由socket()函数调用返回的并且

27、未连接的套接字句柄。参数name是赋给套接字s的本地地址。参数namelen指参数name的长度,调用成功,返回0;否则返回SOCKET_ERROR。2.4.4建立套接字连接建立套接字是要用connect()与accept()。connect()函数的原型声明如下: int PASCAL FAR connect (SOCKET s,const struct sockaddr FAR *name,int namelen); Connect()共有三个参数,其中s指要建立连接的本届套接字句柄。参数name指对方套接字地址结构的指针,对方套接字地址长度由参数namelen说明。如果调有成功,返回0;

28、否则返回SOCKET_ERROR。Accept()函数原型声明如下: SOCKETPASCAL FAR accept(SOCKET s, struct sockaddr FAR *addr,int FAR*addrlen);该函数也由三个参数,其中参数s为本地套接字句柄,在做accept函数调用的参数前要先调用listen(),参数addr是指向客户方套接字地址结构的指针,用来接收连接实体的地址。addr的确切格式由套接字创建时建立的地址簇决定。参数addrlen为客户方套接字地址的长度。如果调用成功,accept()函数返回一个SOCKET类型的值。否则返回INVALID_SOCKET。So

29、cket(),bind(),connect(),accept()这四个套接字系统调用可以晚上一个完全的通信建立,包括协议,本地主机地址和端口,目的地址和端口。socket()指定协议元,他的用法与是否为客户机和服务器,是否面向连接无关,bind()指定本机地址和端口号,时面向连接的。在服务器方必须调用bind()函数;2.4.5 监听连接建立连接以后,服务器端要调用listen()函数,表明愿意接收连接,listen()要在accept()之前调用,原函数声明如下:int PASCAL FAR listen(SOCKET s,int backlog);该函数有两个参数,参数s标志一个本地已建立

30、单尚未连接的套接字句柄,服务器愿意从它上面接收请求。参数backlog表示请求连接队列的最大长度,用于限制排队的请求个数,目前最大值为5。如果调用成功,listen()函数返回0;否则返回SOCKET_ERROR。2.4.6 数据传输当连接建立以后,就可以传输数据了,通常调用send()和recv()函数。send()函数原型声明如下: int PASCAL FAR send(SOCKET s,const char FAR *buf,int len,int flags);共有四个参数,其中s为已经连接的本地套接字句柄。buf指向存有发送数据的缓冲区指针,长度有len指定。flags智利队传输控

31、制方式,如是否发送带外数据等。如果调用成功,返回总发送的字节数;否则,返回SOCKET_ERROR。Recv()函数调用用于在参数s指定的已经连接的数据报或流套接字上接收输入数据,原型声明如下: Int PASCAL FAR recv(SOCKET s ,char FAR *buf, int len,int flags);参数的意义同send();2.4.7关闭套接字closesocket()关闭套接字s并释放分配给该套接字的资源,cosesocket()函数原型声明如下:BOOLPASCAL FAR close socket(SOCKET s);该函数只有一个参数s,指待关闭的套接字句柄。如

32、果调用成功,返回0,否则返回SOCKET_ERROR。3 Windows的消息系统Windows 程序时基于一种事件驱动的编程模式,这就意味着应用程序所要做的大部分工作时随着Windows消息的变化而进行的。在本程序的实现过程中,涉及大量的系统消息处理和自定义消息的处理。因此,用到如何使用处理C+类的消息。3.1 消息的种类应用程序所要做的每项工作几乎都是基于处理Windows消息的,这些消息以三种基本形式出现:常用的Windows、控件通知和命令。Windows消息的ID通常加上前缀WM_,例如WM_QUIT。这些前缀为WM_的消息代表发生在应用程序中的窗口和视图处理消息(MFC为这些消息中的绝大部分提供了默认的操作)。控件消息是由子窗口传向主窗口的WM_COMMAND消息。例如,只要编辑控件的当前内容被改变,它就会传递一个EN_CHANGE消息到主窗口(通常是对话框)。Windows消息控件通知通常由窗口对象来处理,即由类CWnd所派生的对象处理。命令

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1