ImageVerifierCode 换一换
格式:DOC , 页数:31 ,大小:601.50KB ,
资源ID:2665970      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(学位论文-—论远程控制系统设计与开发主控端模块设计.doc)为本站上传会员【可****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

学位论文-—论远程控制系统设计与开发主控端模块设计.doc

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

2、 模式 套接字 信息安全 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 control the computer on the

3、 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 controlled terminal and implement

4、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 controlled terminal, sendin

5、g 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/Server mode Socket Informati

6、on security目录摘 要1Abstract2目录31.绪论51.1 课题研究背景51.2国内外研究现状51.3课题研究的主要内容和方法61.4主要工作分配62 简单远程控制系统相关理论72.1 远程控制系统概述72.2 TCP协议72.3 UDP协议82.4 Socket套接字82.4.1基本套接字函数调用102.4.2 创建套接字112.4.3 指定本机地址112.4.4建立套接字连接112.4.5 监听连接122.4.6 数据传输122.4.7关闭套接字123 Windows的消息系统133.1 消息的种类133.1.1 MFC中的消息处理133.1.2用ClassWizard进行

7、消息处理133.2客户端/服务器(C/S)模式144.简单远程控制系统架构154.1 总体目标154.2受控端需求154.3 性能要求154.4 运行要求164.5控制端需求164.5.1图形界面需求164.5.2数据信息的传输需求164.6 用户系统描述164.7 主控端设计164.7.1添加主机(建立连接,断开连接)164.7.2发送消息174.7.3 系统信息的获取及修改174.7.4简单远程控制的被控端执行CMD命令的实现174.7.5简单远程控制的被控端进程的浏览和杀死功能的实现185.基本设计概念和流程216.1远程控制台236.2功能模块实现236.3操作系统类型判断237.简单

8、远程控制的连接功能实现247.1端口连接247.1.1反弹端口实现247.1.2 Server端简化流程247.2 简单远程控制的被控端系统控制的实现258.测试278.1 测试环境278.2 测试过程以及结果279.总结与展望2910.致 谢3011.参考文献311.绪论因特网的出现及其发展推动了科学技术的各个方面,并使之取得了巨大的进步,利用因特网,可以使远程控制技术得到大范围的应用,从而方便人们的生活。1.1 课题研究背景随着社会、科技、经济的不断发展,远程控制技术的应用范围也在不断拓展,从最初银行、军事、机要部门等特殊行业领域的应用已经延伸到了今天的电业部门、商业部门、普通工矿企业、道

9、路交通领域、学校教学应用、卫生医疗部门以及宾馆酒店行业等等,其卓越的功能也日益受到各个应用行业的重视和青睐,但是许多远程监控软件都需要配有硬件设备,这不仅使得实际应用的成本升高,而且也使实施应用增加了技术障碍。虽然有诸多问题的存在,但是我们应该认识到远程控制技术的研究,不仅充分利用了现有资源,拓宽了因特网的利用范围,而且也使远程控制能够减少成本扩大远程化距离,实现任意节点的访问机制,并进入一般的应用领域,比如,进入家庭,人们通过因特网控制家用电器,采用因特网作为远程控制平台,是一项很有前途和潜力的技术,另外它可以应用到设备远程诊断、远程监测、遥控等领域。通常企业内部或者IT公司的客户技术支持部

10、门都有技术支持业务其任务是通过电话解答疑难问题,努力减少技术人员到现场服务或让用户把设备送到支持中心进行维护。这种技术支持方式尽管被普遍采用,但效率不高而且大大增加了技术支持成本。远程控制软件能使技术人员直接操作远程计算机,就像操作本地机器一样,无需用户介入,技术人员既能得到该机器的一手资料,从而加快了问题的解决。实际上,使用远程控制工具的技术人员能够做到解答疑难问题,安装和配置软件,把软件下载到用户计算机上,配置应用程序和系统软件设置并可通过实际操作培训用户。 1.2国内外研究现状目前,基于因特网的远程控制国内外都有不同程度的研究。相对来说,由于西方国家在信息技术和计算机控制技术的发展上的优

11、势,他们在研究远程控制方面相对早些,而且有些公司有相关的初级产品问世。国内由于因特网的飞速发展,近几年也开始积极的研究。国内外在基于因特网的远程机器人控制方面的研究相对其他领域要多一些。例如美国伯克立大学研制的是一个通过因特网远程控制的种植花草 工业机器人手臂。拥护通过机器人手臂上的摄像机所传输的图像,对这个花园内进行简单的操作。这些基于因特网的远程控制系统普遍采用了客户/服务器网络模型,现场采用摄像机来监视,并通过网络发出指令。当前,由于网络基础设施还不够完善,所以监视图像由于数据量大,其传输时间过长。即使是采用了数据压缩技术,也仍然有很大的数据量需要传输,因而由此产生的远程控制时间延迟也必

12、然很大。此外,这类系统普遍采用瘦客户/肥服务器的网络模型,监控端的控制操作功能过于简单,都只是发一些简单的指令,而不能实现一些复杂的必要的逻辑处理功能。第三,这类系统在处理上由于时间延迟影响现场控制系统不稳定时,仍然采用的执行-等待-执行-等待的单步执行流程,生产设备运行效率相当低下,第四,大量的采用以图像监视为主的方式,虽然可以使得监控人员更能直观的感受到现场情况,便与监控人员的控制;但是我们应该注意到,有些设备的被监控状态是难以用图像方式表示出来的,比如温度、速度、压力这类精确的数值量;此外有些采用图像传输的数据量也可以采用通过数据传输关键数据以在监控端进行实况模拟图,这样就会减少数据量,

13、而使数据传输速度大大提高。1.3课题研究的主要内容和方法本课题的研究主要内容主要包括以下几个方面:1.简单远程控制系统相关理论研究2.简单远程控制系统总体结构3.简单远程控制系统的功能模块的设计4.简单远程控制系统功能模块的编程实现本软件用C+语言编写,采用的是C/S结构,一个客户端,一个服务器端。客户端是控制端,服务器端是被控制端。主要功能就是通过本地计算机,控制远程的另一台计算机的键盘。主要思路是先用Win socket建立两边的连接,客户端向服务端发送键码,服务器端得到键码后模拟出按键事件。1.4主要工作分配该系统软件是本人与肖星辰同学共同研究开发的,肖星辰同学主要负责被控端的设计与开发

14、,本人主要负责主控端和部分被控端(获取被控端信息)的设计与开发。本人在系统开发中的具体工作:1.搜寻与系统开发相关的资料,熟悉C+开发语言。2.完成主控端与被控端的连接。3.完成主控端模块的程序代码。4.与肖星辰同学一起对系统进行调试和测试。5.归并相关系统开发文档,完成毕业论文的撰写。2 简单远程控制系统相关理论2.1 远程控制系统概述远程控制软件实际上是一种客户机/服务器程序,服务器程序安装在被控制的计算机端,客户机安装在控制端。在客户端和服务器端都安装成功之后,客户端在网络上搜寻已经安装了服务器的远程计算机;然后,客户端就发指令获得服务器端的连接指令,两台PC建立起连接,就可以通过网络的

15、互连协议TCP/IP协议进行远端控制。2.2 TCP协议TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向上传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送

16、到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。TCP基础:数据传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可彼此进行数据传输。如果创建客户应用程序,就必须知道服务器计算机名或者 IP 地址(远程主机)属性,还要知道进行“侦听”的端口(远程端口)属性,然后

17、调用Connect方法。如果创建服务器应用程序,就应设置一个收听端口(本地端口)属性并调用 Listen 方法。当客户计算机需要连接时就会发生Connection Request事件。为了完成连接,可调用Connection Request事件内的Accept方法。建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用 Send Data方法。当接收数据时会发生Data Arrival事件。调用Data Arrival事件内的Get Data方法就可获取数据。2.3 UDP协议UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送

18、。UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出丢包现象,实际应用中要求程序员编程验证。UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询-应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。UDP基础:用户数据文报协议(UDP)是一个无

19、连接协议。跟TCP的操作不同,计算机并不建立连接。另外UDP应用程序可以是客户机,也可以是服务器。为了传输数据,首先要设置客户计算机的Local Port属性。然后,服务器计算机只需将Remote Host设置为客户计算机的Internet地址,并将 Remote Port属性设置为跟客户计算机的Local Port属性相同的端口,并调用 Send Data方法来着手发送信息。于是,客户计算机使用Data Arrival事件内的 Get Data方法来获取已发送的信息。2.4 Socket套接字在远程控制软件中,对于主控机和受控机进行的数据通信所使用的主要技术就是网络编程技术和系统编程技术。随

20、着计算机网络技术的发展TCP/IP协议,被集成到操作系统内核中时,相当于在操作系统中引入了一种新型的输入/输出操作,操作系统拥护进程与网络的交互作用比用户进程与传统的输入/输出设备互相作用复杂的多。首先,进行网络操作的两个进程不在同机器上,如何建立它们之间的联系?其次,有很多种网络协议,如何建立一种通用机制以支持多种协议?这些都是网络应用变成所要解决的问题。20世纪80年代初,美国政府的高级研究工程机构ARPA给加利福尼亚大学BERKELEY分校提供了奖金,让他们在UNIX操作系统下实现TCP/IP协议。在这个项目中,研究人员为TCP/IP网络通信开发了一个应用程序接口API。这个API就称为

21、SOCKET(套接字)接口,今天SOCKET接口是TCP/IP网络最为通用的API,也是在INTERNET上进行应用开发最为通用的API。实际上,Socket在计算机中提供了一个通信端口(套接口)。通过这个端口,一台计算机可以与任何一台具有Socket接口的计算机通信。通信的借口是套接口,一个套接口是通信的一端,在这一端上可以找到与其对应的一个名字。一个正在被使用的套接口都有他的类型和与其相关的进程,套接口存在于通信域中。一个套接口通常和同一个域中的套接口交换数据(数据交换也可以穿越域的界限,但这时一定要执行某种解释程序。)应用程序在网络上传输,接受的信息都是通过这个套接口来实现。在应用开发中

22、就像使用文件句柄一样,可以对Socket句柄进行读写操作。开始使用套接字编程之前,首先必须建立这些概念:网间进程通讯,服务方式,客户机/服务器模式。进程通信的概念最初来源与单机系统。由于每个进程都在自己的地址范围内运行,为保证量相互通信的进程之间既互不干涉又能协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD中的管道(Pipe)、命名管道(Named Pipe)和软中断信号(Signal)、UNIX System V的消息(Message)、共享存储区(Shared Memory)和信号量(Semaphore)等,但都仅限于用在本机进程之间的通信。网间进程通信要解决的是不同计算

23、机进程间的相互通信问题(可把同机进程通信看成是其中的一个特例)。为此,首先要解决的是网间进程标识问题,同一计算机上,不同进程可以用进程号(Process ID)作为唯一标识,但在网络环境下,各个计算机独立分配的进程号不能唯一的标识该进程。例如,计算机甲赋予某进程号48,在乙计算机中也可以存在48号进程,因此,“48号进程”这句话就没有意义了。其次,操作系统支持的网络协议众多,不同的协议的工作方式不同,地址格式也不一样,因此,网间进程通信还要解决多重协议的识别问题。在网络分层结构中,各层之间是严格单向依赖的,各个层次的分工和协作集中体现在相邻层之间的界面上。“服务”是描述相邻层之间关系的抽象概念

24、,即网络中各层向紧邻上层提供的一组操作。下层是服务提供者,上层是请求服务的用户。服务的表现形式是原语(Primitive),如系统调用或库函数等。系统调用是操作系统内核向网络应用程序或高层协议提供的服务原语。在国际标准化组织(ISO)的术语中,网络层及其以下各层又称为通信子网,只是提供点到点的通信,没有程序或进程的概念。而传输层实现的是“端到端”通信,引进网间进程通信概念,同时也要解决差错控制、流量控制、数据排序(报文排序)及连接管理等问题。为此提供不同的服务方式:面向连接(虚电路)的服务或无连接的服务。面向连接服务是电话系统服务模式的抽象,即每一次完整的数据传输都要经过建立连接,使用连接及终

25、止连接的过程。在数据传输过程中,各数据分组不携带目的地址,而使用连接号(Connect ID)。本质上,连接是一个管道,收发数据不但顺序一致,而且内容相同。其中TCP协议就提供面向连接的虚电路。无连接的服务是邮政系统服务的抽象,每个分组都携带完整的目的地址,各分组在系统中独立传送。无连接服务不能保证分组的先后顺序,不进行分组出错的恢复与重传,不保证传输的可靠性。提供无连接的数据报服务的常用协议是UDP协议。在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式就是客户机/服务器模式(Client/Server)。即客户向服务发出服务请求,服务接收到请求后,提供相应的服务。客户机/服务器模

26、式的建立基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用;其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为两者的数据交换提供同步,这就是基于客户机/服务器式的TCP/IP。2.4.1基本套接字函数调用大多数的数据报套接字应用程序都使用一个规定的事件序列来完成客户应用程序与服务器应用程序间的通信,如图2-1所示: Client Server socket() socket() bind() send to

27、() recvfrom() recvfrom() send to() . . Close socket();Closes socket();图2-1首先,客户端和服务器端都要创建一个数据报套接字。接着,服务器调用bind()函数给套接字分配工人的端口(在开发应用程序时,这个公认的端口通常时指定的。例如本程序的端口就指定为80)。这样,客户端和服务器端就使用同一个端口来表示服务器套接字。一旦服务器将公认的端口分配给了套接字,客户端和服务器端都能使用sendto()和recvfrom()来发送和接收数据报直到完成传输。然后调用closesocket()来关闭套接字。下面具体看从给定套接字的一个地址

28、开始的每一步工作时怎样进行的。2.4.2 创建套接字系统调用socket()函数向应用程序提供套接字手段时的声明如下:SOCKET PASCAL FAR socket(int af, int type, int protocol);该函数有三个参数,其中参数af指定通信发生的区域,在DOS,Windows系统中支持AF_INET,它时网际网区域。 参数type描述要建立套接字的类型。也就是指是流式套接字还是数据报套接字。 参数protocol说明该套接字使用的协议,如果该参数为0,则表示使用默认的连接模式。Socket()函数根据这三个参数建立一个套接字,并将相应的资源分配给它,同时返回一个整

29、形套接字句柄。2.4.3 指定本机地址当一个套接字用socket()创建以后,bind()将套接字地址(主机地址和端口)与所创建的套接字编号联系起来,即将名字赋予套接字。bind()声明如下: int PASCAL FAR bind(SOCKET s, const struct sockaddr FAR *name, int namelen);bind()函数共有三个参数,其中参数s是由socket()函数调用返回的并且未连接的套接字句柄。参数name是赋给套接字s的本地地址。参数namelen指参数name的长度,调用成功,返回0;否则返回SOCKET_ERROR。2.4.4建立套接字连接建

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

31、 *addr,int FAR*addrlen);该函数也由三个参数,其中参数s为本地套接字句柄,在做accept函数调用的参数前要先调用listen(),参数addr是指向客户方套接字地址结构的指针,用来接收连接实体的地址。addr的确切格式由套接字创建时建立的地址簇决定。参数addrlen为客户方套接字地址的长度。如果调用成功,accept()函数返回一个SOCKET类型的值。否则返回INVALID_SOCKET。Socket(),bind(),connect(),accept()这四个套接字系统调用可以晚上一个完全的通信建立,包括协议,本地主机地址和端口,目的地址和端口。socket()指

32、定协议元,他的用法与是否为客户机和服务器,是否面向连接无关,bind()指定本机地址和端口号,时面向连接的。在服务器方必须调用bind()函数;2.4.5 监听连接建立连接以后,服务器端要调用listen()函数,表明愿意接收连接,listen()要在accept()之前调用,原函数声明如下:int PASCAL FAR listen(SOCKET s,int backlog);该函数有两个参数,参数s标志一个本地已建立单尚未连接的套接字句柄,服务器愿意从它上面接收请求。参数backlog表示请求连接队列的最大长度,用于限制排队的请求个数,目前最大值为5。如果调用成功,listen()函数返回

33、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智利队传输控制方式,如是否发送带外数据等。如果调用成功,返回总发送的字节数;否则,返回SOCKET_ERROR。Recv()函数调用用于在参数s指定的已经连接的数据报或流套接字上接收输入数

34、据,原型声明如下: 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,指待关闭的套接字句柄。如果调用成功,返回0,否则返回SOCKET_ERROR。3 Windows的消息系统Windows 程序时基于一种事件驱动的编程模式,这就意味着应用程序所要做的大部分工作时随着W

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

36、话框)。Windows消息控件通知通常由窗口对象来处理,即由类CWnd所派生的对象处理。命令是由菜单、按钮(包括工具条)和快捷键传递来的WM_COMMAND消息。很多类可以处理命令消息,其中包括文档、文档模板、窗口、视图和应用程序及本身。3.1.1 MFC中的消息处理MFC为窗口下的消息处理提供了一种框架,使其使用起来比传统的Windows程序下做控件的消息处理的switch case语句和ifelse语句更为简单。MFC用用户类的消息映射来决定怎样处理已经给定的消息。使我们能最大限度的利用C+语言的优点将我们的类进行功能性封装,这样,由这些类所创建的其他类就不用再次重复操作。MFC为了进一步

37、扩展重复使用性,它为大多数Windows应用程序,甚至范围更广的命令提供了默认操作。其他的标准命令也有同样的命名规则,这个规则就是ID_+菜单名+命令名。如果想执行这些标准操作之一,可以从应用程序中的任何一处发送一则预定义号的命令消息,这一消息就能被MFC进行默认处理。当然,也可以对这些命令实现自己的处理。3.1.2用ClassWizard进行消息处理对于绝大多数的消息处理任务来说,ClassWizard能提供极大的帮助。ClassWizard通过使用其中的消息映射项,能将消息映射成各种类所对应的处理程序。1)实现处理函数当用ClassWizard增加处理函数时,就会在创建处理函数的同时,提供

38、恰当的参数和返回类型。如果创建自己的消息映射入口,并自行匹配处理函数,应注意按消息映射入口所希望的方式来说明处理函数和返回类型。2)自定义消息的处理由于Windows是事件驱动的环境,用户常常需要增加一些自定义的消息。ClassWizard不允许增加用户自定义消息,所有必须手工输入。当开发Windows应用程序时,Microsoft推荐用户自定义消息至少WM_USER+100;第二,实现消息处理函数。该函数使用WPARAM和LPARAM参数并返回LRESULT第三,在类头文件的AFX_MEG块中说明消息处理函数。最后,在用户类的消息映射块中,使用ON_MESSAGE宏指令将消息映射到消息处理函

39、数中。3.2客户端/服务器(C/S)模式在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(Client/Server)。即客户向服务器发出服务请求,服务器接受到请求后,提供相应的服务。客户机/服务器模式的建立基于一下两点:首先,建立网络的起因是网络中软硬件资源,运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用;其次,网间进程通信完全是异步的,相互通信的进程见既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为两者的数据交换提供同步,这就是基于客户机/服务器模式的TCP/IP。

40、4.简单远程控制系统架构4.1 总体目标本项目的总体需求为开发出一套远程控制软件,包括受控端程序和控制端程序。其中受控端程序需具有较多的高级特性,包括高荫蔽性、保密性和许多的特殊功能性。4.2受控端需求对特定的个人主机进行远程控制,包括获取一些特定的文件信息和对其进行远程操作等,同时要求有较高的荫蔽性、保密性和稳定性。受控端的隐蔽性需求在系统的进程显示中隐藏不另开任何端口不被防病毒 软件查杀不给主机带来异常,尽量不明显加大网络流量。与控制端的需求突破防火墙的限制保证数据传输的稳定性和可靠性在对方使用代理的情况下也可以完成数据传输控制功能的需求获取文件控制权(文件上传、下载、修改、删除)获取系统

41、信息(系统硬件信息、安装软件信息、网络信息)进程管理注册表管理受控端程序自启动的需求要求受控端经过一次植入后能在开机后实现自行启动运行,无需再次远程植入,启动后自动通知控制端并得到连接所需的参数。4.3 性能要求主控端界面应当简单、友好、方便使用和操作;被控端是用作运行在被控计算机内的可执行文件,为提高执行速度,从客户端发送到服务端的信息应尽量的少。主控端与被控端之间通过使用TCP协议建立连接,以实现对被控计算机的控制。4.4 运行要求设计出的简单远程控制软件应当在现在使用的大量操作系统上都能运行。例如:Windows 2000、Windows XP、Windows 2003;能在较低的硬件配

42、置上运行,如128M的内存,AMD 1800+的处理器。4.5控制端需求4.5.1图形界面需求控制端程序与受控端程序不同,它需要有一个图形化的显示界面,这样就能够提供给用户一个直接、易用的平台进行操作。4.5.2数据信息的传输需求与受控端程序进行稳定、可靠的数据传输通信联系,包括发送控制指令,接受所需要的重要文件和数据信息等。4.6 用户系统描述首先设置主控计算机为主控端,主控端显示为监听状态,主控端通过输入被控计算机的IP地址连接到被控端。被控端连接成功后,主控端显示为连接状态,主控端便可以对被控计算机实现各种操作。每次操作成功后都会在主控端计算机上显示相应的提示信息。4.7 主控端设计 相

43、对服务器端(受控端)的设计,客户端较为简单。客户端设计是,选用了MFC ApWizard(EXE),的基本对话框。在窗口上添加一些控件。修改相应的编辑框属性。添加相应的成员变量。本软件设置了一个信息显示窗口,用来接收服务器端发回来的反馈消息。4.7.1添加主机(建立连接,断开连接)在本软件设计初期,我用的是通过指定要连接的计算机的IP地址进行远程的控制连接,在通过远程网络控制通信时,就先指定要登录的计算机的IP,有针对性的连接,这样安全性也好一点。因此在图4.7中的主控端的信息栏里就有了IP地址的输入栏。要登录时。在IP地址栏填入被控端的IP地址(初始化设置为127.0.0.1),端口号(本程

44、序的端口设置为80)。4.7.2发送消息定义两个字符串变量:m_csSend和m_csRead来实现客户端和服务器端的消息互连。并且利用Send()函数来实现数据传输。返回的结果在信息显示窗口显示出来。而且,在服务器端,利用了数组类自带的.mid()函数,提取主要的命令来实现对命令的筛选控制,更有利于服务器对客户端发送的命令的执行。具体详细实现方法可以参阅附录的源代码。4.7.3 系统信息的获取及修改在一般的远程控制软件中,控制端用户可以通过软件获得被控制端的计算机的一些基本信息,例如内存信息和操作系统信息等;也可以修改被控制端计算机的系统配置,获得系统信息通过系统API来实现,修改系统配置有

45、两种方式,一种是直接修改系统配置文件,包括win.ini,system.ini,system.sys和autoexec.bat等文件;另一种方式就是修改系统的注册表。由于时间关系,本软件也并非黑客软件,本软件在修改系统配置的时候,只是单纯查看和配置系统文件,和手工修改文本来实现这个功能,而且,出于安全考虑,并不想通过修改被控端的系统配置而是被控端系统崩溃等。本程序只设置了两个保存系统信息的文件,1是autoexec.bat,2是config.sys这两个。DOS在启动会自动运行autoexec.bat这条文件,一般我们在里面装载每次必用的程序,如: path(设置路径)、 mouse(鼠标启动

46、)、doskey(键盘管理)、set(设置环境变量)等。这些都是系统信息存储的重要信息,一般不要改动。CONFIG.SYS也是DOS系统中的一个重要文件,它的配置直接影响到系统的使用及其效率。如果配置不当的话,可能很多程序都无法正常运行。具体详细命令就不介绍了。所以,最好不要乱配置系统信息,会很容易导致受控端的系统崩溃。确实需要要改动时,可以用直接控屏来做相应改动。4.7.4简单远程控制的被控端执行CMD命令的实现此模块主要实现对被控计算机的机器系统的控制,包括对被控计算机实施关闭计算机、重新启动被控端计算机以及注销被控端计算机目前使用的用户功能。并且可以通过cmd命令打开和关闭windows

47、程序。做到使主控端用户在主控计算机上就能很容易的控制被控计算机的系统。服务器如果收到“P”,则调用ShellExecute(NULL,NULL,cmd.exe,cmd,NULL, SW_HIDE);/SW_HIDE = 0; 隐藏打开cmd命令框,并将所发信息作为cmd命令参数进行操作,并且cmd窗口是隐藏的,不易被发现。4.7.5简单远程控制的被控端进程的浏览和杀死功能的实现此模块主要实现主控计算机对被控计算机的所有进程进行浏览和对一些进程进行杀死操作。有了此功能模块的建立,主控端用户可以在本机更清楚的了解被控计算机的系统运行详细信息。得到进程信息:客户端要首先创建套接字sockClient,用于向服务器发送请

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服