网络远程监控及管理系统扫描和远程操作模块的设计与实现毕业设计说明书.doc

上传人:豆**** 文档编号:29921156 上传时间:2022-08-02 格式:DOC 页数:43 大小:577.50KB
返回 下载 相关 举报
网络远程监控及管理系统扫描和远程操作模块的设计与实现毕业设计说明书.doc_第1页
第1页 / 共43页
网络远程监控及管理系统扫描和远程操作模块的设计与实现毕业设计说明书.doc_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《网络远程监控及管理系统扫描和远程操作模块的设计与实现毕业设计说明书.doc》由会员分享,可在线阅读,更多相关《网络远程监控及管理系统扫描和远程操作模块的设计与实现毕业设计说明书.doc(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、本科毕业设计说明书题 目:网络远程监控及管理系统扫描和远程操作模块的设计与实现院 (部): 计算机科学与技术学院专 业: 网络工程班 级: 姓 名:学 号: 指导教师: 完成日期: 2013年5月28日I目 录摘 要IABSTRACTII1 前 言11.1 网络远程监控系统的研究意义11.2 网络远程监控系统的技术现状11.3 跨平台的网络远程监控系统的前景22 系统分析与设计22.1 需求分析22.2 系统设计32.2.1 系统结构设计32.2.2 系统功能设计33 远程控制概述43.1 远程控制的概念43.1.1 远程控制的原理43.1.2 远程控制的实现53.1.3 远程控制的发展前景5

2、3.2 远程控制、木马、病毒与黑客程序64 网络及应用协议74.1 计算机网络的基本概念74.1.1 计算机网络的定义74.1.2 计算机网络的基本功能84.1.3 计算机网络体系结构84.1.4 OSI体系结构94.2 TCP/IP协议分析105 远程控制的实现基础115.1 Socket编程基础115.2 Windows的消息系统145.2.1 消息的种类145.2.2 MFC中的消息处理155.2.3 创建消息映射156 详细设计与实现176.1 软件的实现的前提和功能176.1.1 软件实现的前提186.1.2 软件实现的功能186.2 控制端程序的实现196.3 被控制端程序的实现2

3、36.4 软件编写过程中的一些问题和总结297 功能测试31结 论31致 谢37参考文献3837摘 要随着网络技术的飞速发展,日益广泛网络覆盖为人们的生活提供了许多的便利。网络在人们生活中地位的提升,带来的是对网络安全和管理的日趋重视。其中一个广为人知的课题是本文中将实现的网络远程监控及管理系统,这为受到地域限制的网络管理问题的解决提供了一些思路。本文针对远程控制的概念以及软件的编写问题进行了详尽、深入的分析、研究。首先阐述了远程控制的概念、远程控制软件的发展前景以及它与黑客和木马程序区别;其次介绍了远程控制软件实现所依靠的网络协议、Socket编程的基本概念和Windows消息系统;最后讲解

4、了利用VS2008编写一个完整的远程控制软件,包括客户端程序、被控制端程序的实现过程。此次设计的远程监控系统基于VS环境,采用C+语言编写。其设计思路为:通过局域网内地址扫描被控端的IP地址并与之连接;连接被控端的注册表项实现远程开/关机、控制被控端键盘及鼠标,实现远程协助功能;通过网络传输机制,实现文件上传以及下载的功能(例如:管理日志的上传下载);对被控端屏幕的获取;与被控端信息的传递。其中要解决的几个关键性的技术问题:1)采用多线程技术实现多客户端服务;2)将屏幕划分成网格状进行图片的传输,并以网格为单位刷新屏幕,届时仅需要将有更新的屏幕网格发送到客户端即可,以增加传输速度。关键词:远程

5、控制;VS2008;网络协议;多线程;客户端;服务器端Network Remote Monitoring and Management SystemDesign and Implementation of Scan and Remote Control ModuleAbstractWith the rapid development of network technology, increasing network coverage in peoples lives has proved much convenience. When networks status promote in peo

6、ples lives, what to bring is more attention has payed to network security and management. One well known subject in these days is network remote control and management system refered to this paper,this paper will provide some ideas for solving network management which distance limit.This paper has a

7、nalysised and studied deeply about remote control and issue of remote control software coding. Firstly,paper will describe the concept of the remote control and its future development,then distinguish remote control software and hackers and Trojan program;secondly,paper will introduce the basic conc

8、ept of Socket coding and Windows information system and net work protocols which remote control software depends on; finally,paper will explain how to use VS2008 to write a complete remote control software,including client program and server program.This remote control system based on VS server,usin

9、g C+ language.This design following some idea bellow:Using LAN address scanning to get host IP address and to build connection;control remote registry to set remote PC on / off, control terminal keyboard and mouse for remote assistance;using network transmission mechanism,to upload and download file

10、;servers screens getting; transmitting the controlled terminals information.Some problems have to solve in this design:1) For multi-client services,we have to use multithread technology;2) The screen which is ready to transmit will divid into blocks to sent,and ths refresh of screen is based on unit

11、 block,when necessary,we only need to update changed block so that transmission speed can be increased.Key word: Remote Control;VS2008;Network protocol;Multithread;Client;Server1 前 言1.1 网络远程监控系统的研究意义不夸张的说,网络已经深入人们生活的各个方面。无论是工作学习,还是军事科学,总是离不开网络的基础。网络技术的迅速发展不但带来了网络应用的扩大,也带来了网络管理的困难。地域的限制,平台的跨越,都增加了管理员

12、对网络的管理难度。为了解决这个问题,需要提出一个能独立获取局域网内其他计算机信息并能远程监控和管理的解决方案,在将来的研究中,跨平台的管理系统能更灵活的解决这一难题。网络管理的必要性更集中的体现在大型的企业网络中。如何使网络资源利用最大化是每个企业必须考虑的问题。 采取集中的管理方案能更简洁,更有效的避免网络资源的浪费。如资源集中以便节省到外网下载的时间,又如统一管理局域网内计算机的网络流向控制工作时间内的无意义网络行为。这样的管理模式对于精简资源和提高企业的运营效率是十分重要的。概括起来,无论是从技术方面来说还是从效益提升方面来说,网络的监控与管理的必然性已经无可置疑,所以设计一个有效而灵活

13、的网络监控系统是十分有意义的课题。1.2 网络远程监控系统的技术现状网络远程监控系统可以使网络管理员处于独立的地位统一的管理局域网内的更多计算机,管理员在局域网的服务器(主控端)连接局域网内的主机(被控端),通过网络协议传输命令和文件;通过被控端上运行的监控程序实时传送被控端的各种信息;通过对整个局域网的扫描限制非法包的传输,对整个网络的状况和性能有了完整而且实时的了解,使网络管理员能及时发现问题的出现,并且及时解决。传统的远程监控与管理软件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等协议来实现远程控制,不过,随着网络技术的发展,目前很多远程控制软件提供通过Web页面

14、以Java技术来控制远程电脑,这样可以实现在不同操作系统下的远程控制。 丁积德:网络远程监控及管理系统控制管理模块的设计与实现,2007.6.20,第1页1.3 跨平台的网络远程监控系统的前景由于各种操作系统和各种形式的终端机的技术成熟,跨平台的远程网络监控系统也应该跟上时代的步伐。它的灵活性是以往的网络远程监控系统不能比拟的,这使网络的远程管理人群从专业的网络管理员扩大到一般的网络使用者,这能更深远的影响网络的适用范围,使网络更深入人们的生活中,推动网络的产品和网络技术的快速发展。2 系统分析与设计2.1 需求分析出于对一套有效全面的远程网络监控及管理系统方案的需求,这次的课题实现的系统应实

15、现以下功能:1)为保证系统安全,及时发现并处理系统漏洞,需要对远程计算机进行端口扫描和漏洞扫描;2)为保证被控端的实时监控,需要自动跟踪局域网内屏幕变化,获取被控端的被控情况,以做出及时处理;3)为实时管理被控端,需要获取目标系统信息:包括计算机名、注册公司、当前用户、系统路径、操作系统版本、当前显示分辨率、物理及逻辑磁盘信息等多项系统数据,以便出现情况时及时处理;4)为提高对被控端的控制,防止错误操作和非法操作,需要限制被控端系统功能:包括远程关机、远程重启计算机、锁定鼠标、锁定系统热键及锁定注册表等多项功能限制;5)为对远程系统的管理配置的保存以及分析远程系统日志,需要远程文件操作:包括创

16、建、上传、下载、复制、删除文件或目录、文件压缩、快速浏览文本文件、远程打开文件;6)为增强网络安全,需要进行网络流量统计与分析;2.2 系统设计2.2.1 系统结构设计本系统采用服务器/客户机结构,主控端与被控端采用TCP协议进行多线程的网络通信。被控端在2013号端口监听,主控端在2013端口扫描。主控端主要实现网络扫描,发送指令,显示被控端信息,局域网流量分析与统计功能。被控端主要实现开机运行,接受指令,采集本地信息,传送本地信息功能。服务器主机1主机2主机3图2-1:系统结构图2.2.2 系统功能设计根据系统需求将系统划分成六个模块,其功能结构及流程设计如图所示:主控端指令+TCP+so

17、cket()被控端回复内容+TCP+socket()开关机,鼠键/注册表/热键开解锁开关机,鼠键/注册表/热键开解锁端口,漏洞扫描上传文件,要求文件操作获取被控端系统信息获取对方屏幕截图分析流量扫描报告读取本机系统信息下载文件,执行文件操作本机屏幕截取流量报告图2-2:系统功能结构图本文完成的控制管理模块实现了其中三个功能(上图中黄色部分):端口扫描和漏洞扫描;获取目标系统信息:包括计算机名、注册公司、当前用户、系统路径、操作系统版本、当前显示分辨率、物理及逻辑磁盘信息等多项系统数据;包括创建、上传、下载、复制、删除文件或目录、文件压缩、快速浏览文本文件、远程打开文件;流量分析,同步桌面。3

18、远程控制概述3.1 远程控制的概念 远程控制软件历经几代的变迁,它们的目的起初是为了让计算机用户在离开固定的房间时能够通过其他计算机访问自己计算机中的信息,甚至可以访问企业网络资源。今天,远程控制已经被有效的作为超越地理限制的管理工具在各方面发挥了有力的其优势。通过远程控制,管理者可以进行远程监控和数据维护,大大的提高了工作效率,减少了资源的浪费。 远程控制软件实际上是一种客户机/服务器程序,服务器程序安装在被控制端计算机,客户端则安装在控制端。在客户端和服务器端都安装成功之后,客户端在网络上搜索已经安装了服务器的远程计算机;然后,客户端通过发送获得服务器端口的连接指令,使两台PC建立起连接,

19、此时就能凭借TCP/IP协议为载体进行远程控制。远程控制的原理:在本机上启动的程序,拥有与使用者(客户端)相同的权限。因此,在运行服务器程序后,就可以通过相应的客户端程序进行主机的控制了。3.1.1 远程控制的原理 远程控制软件通常分为两部分进行设计:一部分是客户端程序(Client),另一部分是服务器端程序(Server)。使用前需要将客户端程序安装到主控端计算机上,将服务器端程序安装到被控端计算机上。控制的过程为:先在主控端计算机上运行客户端程序,向被控端计算机中的服务器端程序发出请求,然后两端建立起远程连接,通过这个连接使用各种远程控制功能发送远程控制命令,就能使被控端通过运行指定程序达

20、到控制的目的。 远程控制软件在两台计算机之间建立起一条独立的链路,控制端可以通过链路向服务端发送指令,然后服务端响应请求并完成某些特定操作。此时,控制端只进行发送指令和显示远程计算机执行程序结果的操作,而运行程序所需的系统资源均由被控断计算机提供。 为了使用的方便,某些远程控制软件使用了Web技术,主控端可通过IE浏览器运行位于服务器端中的主控端程序来实现远程控制。 通过远程控制软件,我们可以进行多种远程操作,如远程进行鼠标,键盘,注册表等系统项目进行操作,文件操作,截屏操作等等,甚至能通过基础的系统操作进行硬件操作。 3.1.2 远程控制的实现 进行远程控制的首要条件是主控电脑和被控电脑通过

21、局域网、广域网或Internet直接或者间接的相连。其次要需要约定所使用的网络协议,多数情况下远程控制软件使用TCP/IP协议进行通信,也有部分软件可使用NetBIOS、SPX协议,但使用这类协议无法在广域网及Internet上实现远程控制。另外,部分软件要求远程控制的双方拥有合法的IP地址,并且需提供被控端确切的IP地址,这样就使得要对位于防火墙后的电脑实施远程控制变得十分困难,不过目前已经出现了能穿透防火墙的远程控制软件。 3.1.3 远程控制的发展前景 远程控制在众多的领域里有着非常广泛的应用,如远程教育、远程办公、远程IT维护、远程监控等等。 1)远程教育 远程控制可以用于对远程的用户

22、和员工进行教育活动。通过计算机的远程协助功能,实时的向对方展示对计算机的相应操作,相对于单纯的讲课和听课更为生动具体,提高了学习效率。同时远程教育可以节省培训费用,创造更多的培训机会。2)远程办公 远程控制还可让你在任何地点连接自己的工作电脑,使用其中的数据与应用程序,访问网络资源、使用与其连接的打印机等外设;它还可用于公司同事之间互相协同,完成一项共同的工作。王岚:浅谈网络中的远程控制,承德石油高等专科学校学报 ,2009年 3)远程IT维护 通过远程的IT维护对于IT服务供应商来说是一项节约大量成本的工作,远程IT维护能让工程师们足不出户,对客户的计算机进行现场式的检测,提高了维护成功率以

23、及时间效率,更不需要提大量的交通成本。 4)远程监控 企业管理随着信息化的发展,员工在工作时间内工作效率能通过远程监控实现提高。远程监控工作计算机的屏幕,督促员工在工作时间内有效的利用计算机资源进行工作,而不是进行聊天,玩游戏等娱乐;甚至可以通过记录键盘鼠标等操作,监控内部信息资源的安全。3.2 远程控制、木马、病毒与黑客程序远程控制软件省却了管理者的交通时间和费用,给管理工作带来了十分大的便利,但从某种角度来说,它也有其漏洞所在。例如它提供的监听功能,如果使用不当的话,就会出现很多信息安全问题。 1)远程控制与病毒计算机病毒是能通过某种途径潜伏在计算机存储介质或程序里,当达到某种条件时即被激

24、活的具有对计算机资源进行破坏作用的一种程序或指令集合刘昕:基于RPC漏洞病毒的剖析和简单杀毒软件的制作,硕博学位论文 ,2005年。计算机病毒一般具有以下几个特点:破坏性。病毒对于计算机各个部分都有可能进行入侵以及破坏。 隐蔽性。病毒程序大多夹在正常程序之中,很难被发现。 潜伏性。病毒入侵后,能在相当一段时间内处于静止状态,一旦触发某些条件,便能够立即激活,进行破坏。传染性。病毒能够自我复制并散播,造成二次甚至多次的破坏。从计算机病毒的定义和特征中可以看出,远程控制软件与病毒的区别是十分明显的。最基本的区别就在于病毒有很强的传染性,而远程控制软件没有。 2)远程控制与黑客“黑客”一词来源于英语

25、单词hack,本指“手法巧妙,技术高明的恶作剧”。今天,从最普遍的意义上来说,“黑客”意味着那些未经许非法进入他人计算机系统的网络犯罪。他们或修改网页搞恶作剧或散步流言进行恐吓;或破坏系统程序,施放病毒使系统陷入瘫痪;或窃取政治、军事与商业机密;或进行电子邮件骚扰;或转移资金帐户,窃取钱财,作案方式多样,花样翻新,令人防不胜防。由此可见,远程控制与黑客的区别是较大的。黑客通常利用网络和操作系统的漏洞进行入侵和破坏,而远程控制软件的一大任务就是要保护控制端计算机不收非授权用户的访问。 3)远程控制与木马木马是一种能给外来计算机提供本地计算机“后门”的程序,它通过网络和TCP/IP协议进行远程连接

26、。由于它像间谍一样潜入用户的电脑,为其他人的攻击打开后门,与战争中的“木马”战术十分相似,因而得名木马程序。木马和远程控制软件的最大区别在于木马对于用户的欺瞒性,而远程控制软件是用户许可的。远程控制虽然可以方便地操纵远程计算机,但也可能会带来一定安全隐患。远程计算机在成为服务端后,如果IP地址泄漏,那么就有可能被人趁虚而入。虽然远程控制软件不像木马一样是为了个人牟利而诞生的,但是安全策略不当,便有可能产生更严重的后果。4 网络及应用协议 进行远程控制的前提条件是具有计算机网络。一般远程控制使用的是TCP/IP协议,因为TCP/IP协议是整个计算机网络的灵魂。4.1 计算机网络的基本概念4.1.

27、1 计算机网络的定义计算机网络指的是通过有线、无线或其他通信介质相互直接或者间接相连的计算设备群体。由于数以万计的计算设备相连所组成的一个巨大的信息网络,就是我们一般认识中的计算机网络。计算机网络中的计算设备通过各种服务,协议达到了相互通信的目的,其中包括各种传输设备以及传输方式,这样一种服务,协议以及传输方式的集合,构成了功能上的计算机网络。在这样的功能支持以及结构组成下,一个资源共享的系统就产生了,这就是完整的计算机网络。4.1.2 计算机网络的基本功能1)数据通信计算机联网之后,便可以相互传递数据和进行通信。通过网络,各种音频,视频,图片以及文字传输到世界各地,各种媒体借此让自己的事业突

28、飞猛进。随着宽带网络技术不断成熟,这些行业通过计算机网络将会提供速度更快,质量更优和价格更低廉的服务。2)资源共享这是计算机网络的主要用途。计算机通过一个相当大的局域内进行联网,网络中各计算机的资源原则上都可以共享,这就可以突破地域范围的限制。3) 提高系统的可靠性计算机网络采用分布式控制方式可以使资源分布到各个不同的计算机中,这样如果发生某台计算机故障,就可以通过其他路径进行其他计算机的资源访问,这就使得用户能随时访问到想要的资源。4.1.3 计算机网络体系结构计算机网络在提供信息交互服务之前必须达到以下条件:1)通信双方之间必须有可用的通信通道或者接收信息的地址;2)接受信息一方必须确认做

29、好接收数据的准备;3)通信双方必须对信息交流的格式有统一的约定;4)通信双方对于信息传输中可能出现的错误的必须有相应的预备处理机制。其中有一个重要的概念协议。协议是为了在不同系统中的实体间进行通信而使用的。交流什么信息,如何交换,用何种语言沟通,何时通信,这在参与通信的实体间必须达成相互都能接受的协定。这些协定就是规程或协议。协议往往被制定成一系列规则,用来管制两个实体间的数据交换。协议中的关键因素包括:1)语法,包括数据格式和信号电平等;2)语议,包括协调用的控制信息和差错管理;3)规则,包括时间控制,速率匹配和定时。在介绍了协议之后,再引入协议体系结构的概念。4.1.4 OSI体系结构开放

30、式系统互联模型(OSI)是作为计算机通信体系结构的模型由国际标准化组织制订并构架的开发协议标准。OSI模型是由应用层、表示层、会话层、传输层、数据链路层和物理层七层组成。尽管在OSI的框架内开发了很多有用的协议,但全面的七层模型并没有真正流行起来,而TCP/IP体系结构在实现的网络世界中仍占据着支配地位。徐敏远程技术的实现学位论文,2002年OSI模型各层次的功能如下所述。物理层:保证信息通过物理介质传输;规范物理介质的机械、电气等特性。数据链路层:为信息在物理链路传输提供可靠的保证,并提供数据的同步、差错、流量控制。 网络层:为信息在传播路径选择上提供更有效的路径选择方法,负责建立、维持和结

31、束网络连接。传输层:提供可靠的端点间的数据传输,并提供端点间的错误校正和流量控制。会话层:提供数据交换的定界和同步功能,包括建立检查点和恢复方案的方法。表示层:使通信的应用程序能够解释交换数据的含义,它提供的服务包括数据压缩、加密、描述。应用层:一个端系统中的应用程序使用该层协议与另一个端系统的应用程序交换分组信息。各层之间的通信如图4-1所示:图4-14.2 TCP/IP协议分析 TCP/IP起源于20世纪60年代末,是美国政府资助的一个分组交换网络研究项目,现在已经发展成为计算机之间最常用的网络协议。它是一个开源的协议系统,由于它的开源性,是它的应用日益广泛,逐渐成为“全球互联网”的基础。

32、 TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的七层抽象的参考模型,其中每一层执行某一特定任务。而TCP/IP通讯协议采用了四层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这四层分别为: 1)链路层:提供最基础的信息传送介质保证,包括各种物理接口。 2)网络层:它有时也称做互连网络层,处理分组从一台主机移动到另一台主机,例如分组的路由选择。在TCP/IP协议组件中,网络协议包括IP协议、ICMP协议以及IGMP协议。 3)传输层:它主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议组件中,有两个互不相同的传输协议

33、:TCP和UDP。 TCP为两台主机提供可靠的数据通信。它通过“三次握手”建立连接并尽力确保每一次连接的成功。由于传输层提出各种纠错和重发机制,提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。 另一方面,UDP为应用层提供一种非常简单的服务。它的分组传输不对数据的发送作任何的保障,也不需要进行事先的建立确认。任何必须的可靠性必须由应用层来提供。 4)应用层:应用层负责处理各种应用程序在不同端系统的通信。常用的应用程序协议如下,它们分别运行在TCP/UDP上: HTTP超文本传输协议。 FTP文件传输协议。 SMTP用电子邮件的简单邮件传输协议。 SNMP简单网络管理协议。 TCP

34、/IP协议与OSI其层模型的对照如图4-2所示:图4-25 远程控制的实现基础在制作远程控制软件当中,主要使用技术为网络编程技术和系统编程技术。5.1 Socket编程基础1)网间进程通信进程通信的概念最初来源于单机系统。为了使本机中每个进程根据自己独立的地址范围规则而协调的工作,操作系统提供了相当多的应对方案,如UNIX BSD中的管道(pipe)、命名管道(named pipe)和软中断信号(signal),UNIX system V的消息(message)、共享存储区(shared memory)和信号量(semaphore)等。 刘泊朋网络传输系统性能优化研究学位论文,2007年对于网

35、间进程通信要解决的是不同主机进程间的相互通信,如何在不同主机中的进程中找到指定的进程呢?这就涉及标识网间进程的问题了。本机中,可以用进程号加以区分,但在网际环境下,对于本机独立的进程号却不能在网络中唯一标识该进程。其次,操作系统中不同协议的工作方式不同,地址格式也不同。因此,为了防止协议工作混乱,需要使用特殊的标识方法来鉴定每一个协议。为了解决上述问题,TCP/IP协议引入了下列几个概念。端口。某意义上讲,主机地址并不是网络通信的最终地址,为了正确运行应用程序,必须找到正确的进程地址。为此,TCP/IP协议提出了协议端口(protocol port,简称端口)的概念,用于标识通信的进程。类似于

36、文件描述符,每个端口都拥有一个叫端口号(port number)的整数型标识符,用于区别不同端口。应用程序可以使用编号从1到655535的任何一个端口好,并将其分配给端口。通常分成以下几个范围段:端口 0,1255,某些特定服务的保留地址,如FTP、远程网及FINGER等服务。端口 2561023,一般服务保留地址,如Routing function(路由函数)。端口 10244999,客户自由使用,客户端套接字通常会使用这个范围段的端口。端口 5000655535,预定给服务器告知用户的端口。地址。网络环境复杂,两个进程可能由于本机原因、网络原因、路由原因等分离,因此需要三级寻址:a. 能连

37、接多个网络相连的主机必须设置固定的IP;b. 网络上每一台主机应有其唯一的地址;c. 独立的主机中独立的进程必须有在本机的独立标志。TCP/IP中使用32位网络地址+主机地址的地址格式;其中TCP和UDP都采取16位端口号码标识进程。网络字节顺序。为了使数据准确性更高,在网络协议中必须规定网络中传输的字节序列。连接。相互通信的两个进程间传输信息所使用的通道称为连接。半相关。网络中用一个三元组可以在全局唯一标志一个进程:(协议,本地地址,本地端口号)这样一个三元组,叫做一个半相关(half-association)。全相关。一个完整的网间进程通信只能使用两个相同的高层协议进行通信。因此一个完整的

38、网间通信需要一个五元组来标识:(协议,本地地址,本地端口号,远地地址,远地端口号)这样一个五元组,叫做一个相关(association)。2) 服务方式在网络分层结构中,只能由相邻层之间交互信息并逐层传递,但为了使各层之间相互协调,灵活分工,需要提出“服务”的概念。“服务”下层对上层提供的一组可执行操作集合。下层是服务提供者,上层是请求服务的用户。服务的表现形式是机器原语(primitive),能够直接对系统进行最基本的操作。网络层及其以下各层只负责PTP通信,并没有涉及到进程。而传输层负责的是“端到端”通信,这就需要联系到进程了。为解决网间进程通信,解决纠错,流量控制,数据包顺序,拥塞机制等

39、问题,传输层提供不同的服务方式:面向连接(虚电路)或无连接的服务。面向连接服务的概念起源于电话接线模式,即每一次的数据传输都要通过双方建立一条连接,使用连接,终止连接的过程,此时这条连接是一条专有链路,其他通信者无法使用。在数据传输过程中,各数据分组不需要标记目的地址,只需要设置一个标识数据包顺序的寻列号。本质上,这样的连接是一个管道,收发数据不但顺序一致,而且内容相同。TCP协议提供面向连接的虚电路。无连接服务则是启发于邮政服务,每个分组的首部都标明目的地址,各分组在系统中各自传送。无连接服务由于分组的自由选路和随机分发,因此不能保证分组的到达的先后顺序,也不提供纠错机制,并不能保证传输的可

40、靠性。UDP协议提供无连接的数据报服务。3)客户/服务器模式在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器模式(Client/Server model),Client向Server发出请求,Server回复请求的服务。C/S模式的建立有两个前提条件:首先,计算机网络在早期是出于硬件资源的过于分散,无法进行均等的信息计算,为了共享资源,渐渐演化成为现在主流的海量资源主机提供服务,让缺乏资源的Client请求服务这种类型的服务模式。另一方面,由于大多数的应用程序在不同的终端是异步通信,而能相互通信的进程间又不能逻辑通信,因此,需要第三方的通信角色为它们提供通信的同步,这

41、就是基于C/S的TCP/IP。4)套接字类型TCP/IP的socket提供三种不同类型的socket。流式套接字(SOCK_STREAM)提供面向连接,可靠的传输。并提供纠错机制,查重机制,以及顺序发送机制。内设流量控制,避免数据流超限;数据被看作是字节流,无长度限制。FTP使用流式套接字。数据报式套接字(SOCK_DGRAM)提供非连接、不可靠的传输。数据包独立发送,不提供纠错机制,没有查重机制,并不顺序接受数据包。原始式套接字(SOCK_RAW)较低层协议如IP、ICMP能够直接访问该接口。常用检验新设备和新协议。5.2 Windows的消息系统 在远程控制软件中将涉及大量的windows

42、的系统消息处理和自定义消息的处理。5.2.1 消息的种类 应用程序的工作就是处理各种基于windows信息的工作,基本的消息类型有:常用的Windows消息、命令和控件通知。1)常用的Windows消息:指以WM_为前缀的那些消息(除WM_COMMAND),如窗口位移消息WM_MOVE、窗口大小调整消息WM_SIZE,除此之外,程序的运行与关闭、窗口打开与关闭、鼠标键的点击和弹开等等。2)控件通知消息:由编辑框、列表框等控件或子窗日发给其父窗口的通知消息,消息名为WM_ COMMAND,消息中使用控件通知代码,以区分具体的控件通知消息。3)命令消息:命令消息也以WM_ COMMAND为消息名,

43、在消息中包含有命令的标识符(ID),以区分具体的命令。命令消息的来源是如下两种用户接口对象:菜单:用户单击某菜单项,生成对应的命令消息。工具栏:用户按下某工具栏按钮产生相应的命令消息。加速键:通过用户自定义的加速键产生相应的命令消息。常用的Windows消息以及控件通知消息必须被CWnd类或其派生类直接或者间接的进行处理,相比而言,命令消息的处理方式就多得多了,可被窗口类,文档类或者模版类以及应用类处理。5.2.2 MFC中的消息处理 MFC为窗口下的消息处理提供了一种框架,使其使用起来比在传统的Windows程序下做控件消息处理语句更为简单。这是由于从CcmdTarge派生的类能够拥有自己的

44、消息映射。 MFC为了提高其复用性,对大多数Windows应用程序以及命令提供了默认操作。大多数有默认操作的命令同时也被包含在AppWizard产生的默认菜单中。由AppWizard创建菜单的标准命令消息在AFXRES.H中定义,其他的标准命令也由同样的命名规则,这个规则就是ID_+菜单名+命令名。5.2.3 创建消息映射MFC应用程序中对消息的响应采用消息映射,其中包括一张消息与处理函数相互映射的表以及分析其内部应用框架的代码。 CCmdTarget类的派生类都能建立消息映射,其内容包括如下两个方面: 在.h文件内新增一条宏调用:DECLARE_MESSAGEsi MAP() 通常这行语句写

45、在类定义的最后。 在.cpp文件中新增消息映射表: BEGIN-MESSAGE-MAP(类名,父类名) 消息映射入口项 END-MESSAGE-MAP()由MFC AppWizard生成的应用程序中,所有的类都己经包含消息映射。除了某些类(如没有基类的类或直接从CObject等类派生的类)外,其他许多类都可以由ClassWizard自动产生。当然,生成的类只是一个“骨骼”,需要用户补充“血肉”。尽管只是一个类的框架,但在其中已经加人了消息映射(不过消息映射入口项有待加入)。 在类中,消息处理函数都是类的成员函数。要对一个消息进行响应,就要定义该消息的处理函数。在类中,添加一个消息处理函数包括下

46、面三个内容: 1)定义类时,声明该消息处理成员函数。 2)将消息映射入口项加入类的消息映射表中。 3)将消息处理成员函数的函数体加入类的实现中。 消息处理函数的原型前要以关键字afx_msg起始。 当用ClassWizard将新的消息处理函数加入到某个类中时,它会自动添加这三部分内容,但仅添加函数体的框架,具体实现步骤需要用户添加。 CWnd类中已经预定义了对标准Windows消息的默认处理函数。这些函数名之前有一个“on”,后半部分则是其相应的的Windows WM消息名。比如, OnPaint()是对WM_ PAINT消息的处理函数。这些消息处理函数有着类似于需要函数的特性,那就是它的重载。在CWnd的间接或直接派生类中,加入定义了一个标准的Windows消息的消息处理成员函数,则会重载相应的基类消息处理函数。这些预定义的标谁Windows消息处理函数,有些没有参数,有些则带参数,有些有返回类型,有些则没有。 当用Class Wizard加入这两种类型的消息处理函数时,它会提供一个建议的函数名,虽然用户可以更改,但是最好不改。因为Class Wizard是根据控件通知消息中提供的控件通知代码或从命令消息中获得的命令标识符来命名的,因此,就会很容易通过观察消息处理函数名联想到它处理的消息。例如,下面的一个消息处理函数原型:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁