网络虚拟实验平台的构建与测试_第1页
网络虚拟实验平台的构建与测试_第2页
网络虚拟实验平台的构建与测试_第3页
网络虚拟实验平台的构建与测试_第4页
网络虚拟实验平台的构建与测试_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网络虚拟实实验平台的的构建与测测试摘 要基于网络的的虚拟实验验平台是在在能够进行行网络通信信的基础之之上将计算算机上虚拟拟的各种仪仪器、器件件,按实验要要求组装成成一个完整整的实验环环境,实现现搭接实验验电路,演演示实验过过程等功能能。远程指指导模块是是其中的一一个功能模模块。它分成指指导端和被被指导端两两部分,指指导端通过过HOOKK技术,采采集本地机机鼠标和键键盘信息;然后将这这些信息打打包,通过过P2P网网络通信机机制将信息息包传给被被指导端;在被指导导端将信息息包信息解解出,通过过mousse_evvent、keybbd_evvent等等函数去控控制被指导导端的鼠标标、键盘动动作,实现

2、现相关的一一些远程指指导动作。本模块在在VC环境境下开发,用用到了Wiindowws Soockett编程技术术,P2PP编程思想想,HOOOK技术,多多线程技术术等多方面面的技术。由于整个个系统模块块很多,本本设计中编编写了独立立的测试程程序,经过过测试基本本达到预期期的设计目目标。关键词:远远程指导;P2P;Winddows Sockett编程;HOOKK;多线程 Desiggn annd Immplemmentaationn of Remoote GGuidaance Moduule Baseed on Networrk Virtuual EExperrimennt PlatfformA

3、bstrractUnderr thee fouundattion of nnetwoork ccommuunicaationns,the netwoork-bbasedd Virrtuall Expperimmentaal Plattformm coulld inntegrrate variious compputerr virrtuall devvicess intto a comppletee expeerimeentall envvironnmentt acccordiing tto thhe exxperiimentt reqquireementts, andd connnectt t

4、hee expperimment circcuit and demoonstrrate the proccess of eexperrimennt. The remoote gguidiing mmodulle waas onee of funcctionn modduless, whhich was ddividded iinto guidding end and the guidded eend. Withh HOOOK, tthe gguidiing eend ccaptuured the infoormattion of llocall mouuse aand kkeybooard,

5、andd paccked the infoormattion to ssend to the guidded ppart throough peerr-to-peerr nettworkk commmuniicatiion mmechaanismm. The guuidedd endd willl unnpackk thee infformaationn, annd coontrool thhe moouse and keybboardd of the guidded ennd byy mouuse_eeventt, keeybd_evennt fuunctiions to iimpleeme

6、ntt somme reemotee conntroll acttionss. Deveelopeed unnder VC eenvirronmeent, the remoote gguidaance moduule used Winndowss Soccket progrrammiing ttechnnologgy, PP2P pprogrrammiing iideass, HOOOK ttechnnologgy, mmultiithreeadinng teechnoologyy, annd ettc. BBecauuse ttheree aree manny moodulees foor

7、thhe whhole systtem, an iindeppendeent ttestiing pproceeduree was proggrammmed to ttest the moduules, whiich hhad beeen prrovenn to achiieve the desiired objeectivvesKey wwordss: Remoote gguidaance;Peer-to-PPeer;Winddows Sockket pprogrrammiing;HOOKK;Multtithrreadiing 目 录 论论文总页数数:23页TOC o 1-3 h z u H

8、YPERLINK l _Toc169333174 1引言 PAGEREF _Toc169333174 h 11 HYPERLINK l _Toc169333175 1.1项目目背景 PAGEREF _Toc169333175 h 1 HYPERLINK l _Toc169333176 1.2项目目介绍 PAGEREF _Toc169333176 h 1 HYPERLINK l _Toc169333177 1.2.11 基于网网络的虚拟拟实验平台台 PAGEREF _Toc169333177 h 1 HYPERLINK l _Toc169333178 1.2.22 远程指指导模块 PAGEREF

9、 _Toc169333178 h 2 HYPERLINK l _Toc169333179 1.3 项项目要求 PAGEREF _Toc169333179 h 2 HYPERLINK l _Toc169333180 1.3.11 功能要要求 PAGEREF _Toc169333180 h 2 HYPERLINK l _Toc169333181 1.3.22 Cliient/Servver(客客户端/服务器)结构工作过过程 PAGEREF _Toc169333181 h 2 HYPERLINK l _Toc169333182 2 网络基基础知识简简介 PAGEREF _Toc169333182 h

10、 3 HYPERLINK l _Toc169333183 2.1 OOSI与TCP/IP参考考模型的对对应关系 PAGEREF _Toc169333183 h 3 HYPERLINK l _Toc169333184 2.1.11 OSII参考模型型 PAGEREF _Toc169333184 h 3 HYPERLINK l _Toc169333185 2.1.22 TCPP/IP参参考模型 PAGEREF _Toc169333185 h 4 HYPERLINK l _Toc169333186 2.2 WWindoows SSockeet编程原原理及操作作步骤 PAGEREF _Toc16933

11、3186 h 5 HYPERLINK l _Toc169333187 2.3 PP2P网络络介绍 PAGEREF _Toc169333187 h 8 HYPERLINK l _Toc169333188 3 相关函函数分析与与代码实现现 PAGEREF _Toc169333188 h 8 HYPERLINK l _Toc169333189 3.1多线线程 PAGEREF _Toc169333189 h 8 HYPERLINK l _Toc169333190 3.1.11 进程介介绍 PAGEREF _Toc169333190 h 8 HYPERLINK l _Toc169333191 3.1.2

12、2 线程介介绍 PAGEREF _Toc169333191 h 8 HYPERLINK l _Toc169333192 3.1.33 进程与与线程的关关系 PAGEREF _Toc169333192 h 9 HYPERLINK l _Toc169333193 3.1.44 多线线程实现 PAGEREF _Toc169333193 h 9 HYPERLINK l _Toc169333194 3.2 Hookk技术 PAGEREF _Toc169333194 h 9 HYPERLINK l _Toc169333195 3.2.11 Hoook函数简简介及类型型 PAGEREF _Toc169333

13、195 h 9 HYPERLINK l _Toc169333196 3.2.22 Hoook子过程程处理 PAGEREF _Toc169333196 h 12 HYPERLINK l _Toc169333197 3.2.33 Hoook的安装装/卸载 PAGEREF _Toc169333197 h 13 HYPERLINK l _Toc169333198 3.3 设设计流程及及函数思想想 PAGEREF _Toc169333198 h 15 HYPERLINK l _Toc169333199 3.3.11 简述 PAGEREF _Toc169333199 h 15 HYPERLINK l _T

14、oc169333200 3.3.22 代码分分析 PAGEREF _Toc169333200 h 15 HYPERLINK l _Toc169333201 4 程序测测试与相应改进 PAGEREF _Toc169333201 h 18 HYPERLINK l _Toc169333202 4.1 程程序界面 PAGEREF _Toc169333202 h 18 HYPERLINK l _Toc169333203 4.2程序序相关测试试 PAGEREF _Toc169333203 h 19 HYPERLINK l _Toc169333204 4.2.11 获取对对方相关信信息 PAGEREF _T

15、oc169333204 h 19 HYPERLINK l _Toc169333205 4.2.22发送消息息及存贮 PAGEREF _Toc169333205 h 19 HYPERLINK l _Toc169333206 4.2.33被指导端端显示信息息 PAGEREF _Toc169333206 h 20 HYPERLINK l _Toc169333207 4.3 相相关改进 PAGEREF _Toc169333207 h 20 HYPERLINK l _Toc169333208 结 论 PAGEREF _Toc169333208 h 20 HYPERLINK l _Toc169333209

16、 参考文献 PAGEREF _Toc169333209 h 211引言近年来,随随着信息技技术的发展展,计算机机的普及,网网络为我们们带了更多多的便利。网络技术术的发展,引引发了控制制领域的深深刻技术变变革,控制制系统结构构沿着网络络化方向与与控制系统统体系沿着着开放性方方向发展将将是控制系系统技术创创新的大潮潮流。计算算机局域网网络、企业业网络、现现代信号处处理等等使使自动化系系统与工业业控制系统统从体系结结构、控制制方法、产产品系列、人机协作作方法等都都发生了重重大的变化化。进入221世纪的的控制系统统以网络为为主要特征征:一方面面是在自动动化与工业业控制中需需要更深层层次地渗透透通信与网

17、网络技术,另另一方面是是在通信网网络的管理理与控制中中也要求更更多的采用用控制理论论与策略并并且由于系系统中需要要大量的数数据交换,服服务器的负负担很重,所以我们就研究出了基于网络的虚拟实验平台。作为基于网网络的虚拟拟实验平台台的远程指指导模块,本本文通过Winndowss Soccket编程程,以HOOKK技术,多线线程技术作为基础,再再利用其他他的APII函数来实实现被指导导端对指导导端发送请请求信息,将信息打打包以后通通过网络传传输到服务务器端,指指导端收到到信息以后后,将信息息解包,根根据信息提提示来对被被指导端进进行相关指指导:获取取客户的相相关信息、锁定鼠标标和键盘,对鼠标进行动态

18、的控制和指导键盘的信息输入。1.1项目目背景全球信息化化的发展,计算机网络络给我们提提供了优越越的通信平平台,优秀的软软件系统必必须要具有有网络功能能。虚拟实实验平台正正是应这个个大需求而而诞生。并并且随着信信息技术的的发展,网网络无疑为为我们带了了更多的便便利,同时时一个优秀秀的系统必必须要具有有网络功能能,要完成成这些功能能,那就要要把各种网网络通过某某种方式连连接起来,在网络实现过程中存在穿透NAT的问题,此问题存在较长时间,后来因为网络地址不够而产生了P2P技术,伴随着P2P技术的出现,利用UDP实现P2P网络穿越NAT的即时通讯技术,而问题即被解决。1.2项目目介绍1.2.11 基于

19、网络络的虚拟实实验平台计算机技术术、大规模模集成电路路技术和通通讯技术的的飞速发展展,为虚拟拟实验的发发展奠定了了坚实的基基础。虚拟拟实验就是是在通用计计算机上加加载相应的的软件或硬硬件,使得得使用者在在操作这台台计算机时时,就像是是在操作一一台专用的的传统试验验设备一样样。在虚拟拟实验系统统中,软件件是整个系系统的关键键,任何使使用者都可可以通过软软件的相关关设置来达达到要实现现实验的效效果。虚拟实验就就是利用外外部输入(如鼠标的的点击、拖拖动和键盘盘的敲击等等),将计计算机上虚虚拟的各种种仪器,按按实验要求求、过程,组组装成一个个完整的实实验环境,同同时在这个个环境中完完成实验操操作,包括

20、括实验器材材的添加、实验条件件的改变、数据采集集以及实验验结果的模模拟、分析析。它包含含了虚拟仿仿真技术、计算机技技术、实验验技术、网网络技术与与专业等多多方面理论论知识。1.2.22 远程指导导模块远程指导模模块是基于于网络的虚虚拟实验平平台的一个个通信模块块,是基于于Winddows Sockket编程程,使用CCliennt/Seerverr(客户端端/服务器)结构来实现现模块的功功能,以VVC为开发发环境,同同时以HOOOK技术术和多线程技术术作为基础础,再利用用API相相关函数来来实现指导导端和被指导导端的互动。 1.3 项项目要求1.3.11 功能要要求完成远程指指导的基本本功能,

21、指指导端和被指导导端能够进进行P2PP网络通信信,指导端能够够控制被指指导端的鼠鼠标和键盘盘,并且能能够存储相相关信息,还还能够对鼠鼠标进行动动态控制和和指导键盘盘的输入。1.3.22 Clieent/SServeer(客户户端/服务器)结构工作过过程Cliennt/Seerverr(客户端端/服务器)结构,通通过将任务务合理分配配到Cliient 端和Serrver 端,降低低了系统的的通讯开销销,可以充充分利用两两端硬件环环境的优势势,在TCPP/IP网网络应用中中,通信的的两个进程程间相互作作用的主要要模式是客客户机/服务器模模式(cllientt/serrver),即客户户向服务器器提

22、出请求求,服务器器接收到请请求后,提提供相应的的服务。客客户机/服务器模模式的建立立基于以下下两点:首首先,建立立网络的起起因是网络络中软硬件件资源、运运算能力和和信息不均均等,需要要共享,从从而造就拥拥有众多资资源的主机机提供服务务,资源较较少的客户户请求服务务这一非对对等作用。其次,网网络之间进程通通信完全是是异步的,相相互通信的的进程间既既不存在父父子关系,又又不共享内内存缓冲区区,因此需需要一种机机制为希望望通信的进进程间建立立联系,为为二者的数数据交换提提供同步,这这就是基于于客户机/服务器模模式的TCCP/IPP:客户机/服服务器模式式在操作过过程中采取取的是主动动请求的方方式。首

23、先先服务器方方要先启动动,并根据据请求提供供相应的服服务:打开开一个通信信通道并告告知本地主主机,它愿愿意在某一一地址和端端口上接收收客户请求求。等待客客户请求到到达该端口口。接收到到重复服务务请求,处处理该请求求并发送应应答信号。接收到并并发服务请请求,要激激活一个新新的进程(或线程)来处理这这个客户请请求。新进进程(或线程) 处理此客客户请求,并并不需要对对其它请求求做出应答答。服务完完成后,关关闭此新进进程与客户户的通信链链路,并终终止。返回回第二步,等等待另一客客户请求,关闭服务器。客户方:打打开一个通通信通道,并并连接到服服务器所在在主机的特特定端口。向服务器器发送服务请求求报文,等

24、等待并接收收应答;继继续提出请请求。请求求结束后关关闭通信通通道并终止止。2网络基础础知识简介介2.1 OOSI与TCP/IP参考考模型的对对应关系2.1.11 OSI参考考模型国际标准化化组织(IISO)开开发了开放放式系统互互联(OSSI)参考考模型,以以促进计算算机系统的的开放互联联。开放式式互联就是是可在多个个厂家的环环境中支持持互联。该该模型为计计算机间开开放式通信信所需要定定义的功能能层次建立立了全球标标准。OSSI模型将将通信会话话需要的各各种进程划划分成7个相对独独立的功能能层次,这这些层次的的组织是以以在一个通通信会话中中事件发生生的自然顺顺序为基础础的。表11描述了OOSI

25、, 1-3层层提供了网网络访问,4-7层用于支持端端通信。1、物理层层是OSII模型的最最低层,它它建立在物物理通信介介质的基础础上,规定定了机械的的、电气的的功能;该该层负责建建立、保持持和拆除物物理链路;规定如何何在此链路路上传送原原始比特流流;比特如如何编码,使使用的电平平,极性,连连接插头插插座的插脚脚如何分配配等。所以以在物理层层数据的传传送单位是是比特(bbit)。2、数据链链路层它把把相邻两个个节点间不不可靠的物物理链路变变成可靠的的无差错的的逻辑链路路,包括把把原始比特特流分帧(framme)、顺顺序、排序序、设置检检错、确认认、重发、流控等功功能;数据据链路层传传动信息的的单

26、位是fframee,每帧(framme)包括括一定数量量的数据和和一些必要要的控制信信息,在每每帧(frrame)的控制信信息中,包包括同步信信息、地址址信息、流流量信息等等;同物理理层相似,数数据链路层层负责建立立、维护和和释放数据据链路。3、网络层层,它连接接网络中任任何两个计计算机点,从从一个节点点上接收数数据,正确确的传送到到另一个节节点;在网网络层,传传送的信息息单位是分分组或包(ppackeet)。网网络层的主主要任务是是要选择合合适的路由由和交换节节点,透明明地向目的的站交付发发送站所发发的分组或或包,这里里的透明表表示收发两两端好像是是直接连通通的,另外外网络层还还要解决网网络

27、互连、拥挤控制制等问题。上述三层层组成了所所谓的通信信子网,用用户计算机机连接到此此子网上。通信子网网负责把一一个地方的的数据可靠靠地传送到到另一个地地方,但并并未实现两两个地方主主机上进行行进程之间间的通信,通通信子网的的主要功能能是面向通通信的。4、传输层层上真正地地实现了端端对端通信,把把数据可靠靠地从一方方的用户进进程或程序序送到另一一方的用户户进程或程程序。这一一层的控制制通常由通通信两端的的计算机完完成。中间间节点一般般不提供这这一层的服服务,这一一层的通信信与通信子子网无关。从这一层层开始的以以上各层全全部是针对对通信的最最终的源端端目的端计计算机的进进程之间的的。传输层层传送的

28、信信息单位是是报文(mmessaage)。传输层向向上一层提提供一个可可靠的端一一端服务,使使上一层看看不见下面面几层的通通信细节。正因为如如此,传输输层成为网网络体系结结构中关键键的一层,对对于传输层层的功能,主主要在主机机内实现。而对于物物理层、数数据链路层层以及网络络层的功能能均能在报报文接口机机中实现。对于传输输层之上的的各个层次次的功能通通常在主机机中实现。5、会话层层又称对话话层会话层层允许两个个计算机上上的用户进进程建立对对话连接,双双方相互确确认身份,协协商对话连连接的细节节;它可管管理对话是是双向同时时进行的,还还是任何时时刻只能一一个方向进进行。在后后一种情况况下,对话话层

29、控制哪哪一方有权权发送数据据;对话层层还提供同同步机制,在在数据流中中插入同步步点机制,在在每次网络络出现故障障后可以仅仅重传最近近一个同步步点以后的的数据,而而不必从头头开始。以以上两层为为两个计算算机上的用用户进程或或程序之间间提供了正正确传送数数据的手段段。6、表示层层主要解决决用户信息息的语法表表示问题。表示层将将数据从适适合于某一一系统的语语法转变为为适合于OOSI系统统内部使用用的语法。具体地讲讲,表示层层对传送的的用户数据据进行翻译译、编码和和变换,使使得不同类类型的机器器对数据信信息的不同同表示方法法可以相互互理解。7、应用层层主要处理理资源可用用性和安全全问题,它它包含了大大

30、量人们普普遍需要的的协议,如如FTP、TELNNET、HHTTP、SMTPP等。最近近几年,应应用层协议议发展很快快,出现了了很多新的的应用,如如ICQ、Multtimeddia sstreaam等。2.1.22 TCP/IP参考考模型与OSI参参考模型不不同,TCCP/IPP模(表2)更侧重重于互联设设备间的数数据传送,而而不是严格格的功能层层次划分。它通过解解释功能层层次分布的的重要性来来做到这点点,但仍为为设计者具具体实现协协议留下很很大的余地地。因此,OOSI参考考模型在解解释互联网网络通信机机制比较适适合,但TTCP/IIP成为了了互联网络络协议的市市场标准。TCP/IP老-模型是在

31、在它所解释释的协议出出现很久以以后才发展展起来的,更更重要的是是,在于它它更强调功功能分布而而不是严格格的功能层层次的划分分,因此它它比OSII模型更灵灵活。1 应用层层 应用层层包括SMMTP, FTP, HTTTP, NNFS, NIS, LPDD, Teelnett f III Reemotee Loggin应用用层包括一一些服务,这这些服务在在OSI中中由独立的的三层实现现。这些服服务是和用用户相关的的认证、数数据处理以以及压缩。包括电子子邮件、浏浏览器、TTelneet以及其其他的Innternnet应用用。2传输层 传输层层包括TCCP ( Trannsporrt Coontroo

32、l Prrotoccol,传传输控制协协议)和UUDP (Userr Dattagraam Prrotoccol,用用户数据报报协议)。UDP几几乎不进行行检查,而而TCP提提供传输保保证。与OOSI中传传输层不一一样,TCCP不保证证报文的准准确传输。TCP为为两台主机机提供高可可靠性的数数据通信。而另一方方面,UDDP则为应应用层提供供一种非常常简单的服服务,它只只是把称作作数据报的的分组从一一台主机发发送到另一一台主机,但但并不保证证该数据报报能到达另另一端。任任何必需的的可靠性必必须由应用用层来提供供。 3网络层层 TCCP/IPP协议族中中,网络层层由以下协协议组成:ICMPP (I

33、nnternnt联网托托制报文协协议)、IIP(网际际协议)、IGMPP (Innternnet组管管理协议)、RIPP, OSSPF和路由的EGGP网络层层处理报文文的路由管管理。 4链路路层 链路路层包括AARP和RRARP,负负责报文传传输。链路路层管理网网络的连接接并提供网网络上的报报文输入/输出。表1 OSSI模型0 SI参参考模型层次描述OSI层次次号应用层7表示层6会话层5传输层4网络层3数据链路层层2物理层1 表2 TCP/IP模型型TCP/IIP参考模模型层次描述TCP/IIP层次号号应用层4传输层3网络层2数据链路层层1 2.2 WWindoows SSockeet编程原原

34、理及操作作步骤Windoows SSockeets是Micrrosofft Wiindowws的网络络程序设计计接口,它它是从Beerkelley SSockeets扩展展而来的,以以动态链接接库的形式式提供给我我们使用。Winddows Sockkets在在继承了BBerkeeley Sockkets主主要特征的的基础上,又又对它进行行了重要扩扩充。这些些扩充主要要是提供了了一些异步步函数,并并增加了符符合Winndowss消息驱动动特性的网网络事件异异步选择机机制。Wiindowws Soocketts 1.1和Berkkeleyy Soccketss都是基于于TCP/IP协议议的;Wii

35、ndowws Soocketts 2从从Winddows Sockkets 1.1发发展而来,与与协议无关关并向下兼兼容,可以以使用任何何底层传输输协议提供供的通信能能力,来为为上层应用用程序完成成网络数据据通讯,而而不关心底底层网络链链路的通讯讯情况,真真正实现了了底层网络络通讯对应应用程序的的透明。流式套接字字(SOCCK_STTREAMM)提供面向连连接、可靠靠的数据传传输服务,数数据无差错错、无重复复的发送,且且按发送顺顺序接收。数据报式套套接字(SSOCK_DGRAAM)提供无连接接服务。数数据包以“独立包”形式发送送,不提供供无错保证证,数据可可能丢失或或重复,并并且接收顺顺序混乱

36、。原始套接字字(SOCCK_RAAW)。基于TCPP(面向连连接)的sockket编程程:服务器端程程序:1、创建套套接字(ssockeet)。2、将套接接字绑定到到一个本地地地址和端端口上(bbind)。3、将套接接字设为监监听模式,准准备接收客客户请求(llisteen)。4、等待客客户请求到到来;当请请求到来后后,接受连连接请求,返返回一个新新的对应于于此次连接接的套接字字(acccept)。5、用返回回的套接字字和客户端端进行通信信(sennd/reecv)。6、返回,等等待另一客客户请求。7、关闭套套接字。客户端程序序:1、创建套套接字(ssockeet)。2、向服务务器发出连连接请

37、求(cconneect)。3、和服务务器端进行行通信(ssend/recvv)。4、关闭套套接字。基于UDPP(面向无无连接)的sockket编程程:服务器端(接接收端)程程序:1、创建套套接字(ssockeet)。2、将套接接字绑定到到一个本地地地址和端端口上(bbind)。3、等待接接收数据(rrecvffrom)。4、关闭套套接字。客户端(发发送端)程程序:1、创建套套接字(ssockeet)。2、向服务务器发送数数据(seend to)。3、关闭套套接字。相关函数说说明;int bbind( SOCCKET s, coonst struuct ssockaaddr FAR *namme

38、, iint nnamellen ); 这个函数数接收三个个参数。第第一个参数数s指定要绑绑定的套接接字,第二二个参数指指定了该套套接字的本本地地址信信息,是指指向socckadddr结构的的指针变量量,由于该该地址结构构是为所有有的地址家家族准备的的,这个结结构可能(通通常会)随随所使用的的网络协议议不同而不不同,所以以,要用第第三个参数数指定该地地址结构的的长度。 sockkaddrr结构定义义如下: sttructt socckadddr u_sshortt sa_famiily; chaar saa_datta144; ; sockaaddr的的第一个字字段sa_famiily指定定该

39、地址家家族,在这这里必须设设为AF_INETT。sa_ddata仅仅仅是表示示要求一块块内存分配配区,起到到占位的作作用,该区区域中指定定与协议相相关的具体体地址信息息。由于实实际要求的的只是内存存区,所以以对于不同同的协议家家族,用不不同的结构构来替换ssockaaddr。除了saa_fammily外外,socckadddr是按网网络字节顺顺序表示的的。在TCCP/IPP中,我们们可以用ssockaaddr_in结构构替换soockadddr,以以方便我们们填写地址址信息。sockaaddr_in的定定义如下: strruct sockkaddrr_in shoort ssin_ffamil

40、ly; unssigneed shhort sin_portt; strruct inn_adddr siin_adddr; chaar siin_zeero88; ; 其中,ssin_ffamilly表示地地址族,对对于IP地址,siin_faamilyy成员将一一直是AFF_INEET。成员员sin_portt指定的是是将要分配配给套接字字的端口。成员siin_adddr给出出的是套接接字的主机机IP地址。而成员ssin_zzero只只是一个填填充数,以以使socckadddr_inn结构和soockadddr结构构的长度一一样。如果果这个函数数调用成功功,它将返返回0。如果调调用失败,这

41、这个函数就就会返回一一个SOCCKET_ERROOR,错误误信息可以以通过WSSAGettLasttErroor函数返返回。 将IPP地址指定定为INAADDR_ANY,允允许套接字字向任何分分配给本地地机器的IIP地址发发送或接收收数据。多多数情况下下,每个机机器只有一一个IP地址,但但有的机器器可能会有有多个网卡卡,每个网网卡都可以以有自己的的IP地址,用用INADDDR_AANY可以以简化应用用程序的编编写。将地地址指定为为INADDDR_AANY,允允许一个独独立应用接接受发自多多个接口的的回应。如如果我们只只想让套接接字使用多多个IP中的一一个地址,就就必须指定定实际地址址,要做到到

42、这一点,可可以用innet_aaddr()函数,这这个函数需需要一个字字符串作为为其参数,该该字符串指指定了以点点分十进制制格式表示示的IP地址(如66)。而且且inett_adddr()函函数会返回回一个适合合分配给SS_adddr的u_loong类型型的数值。inett_ntooa()函函数会完成成相反的转转换,它接接受一个iin_adddr结构构体类型的的参数并返返回一个以以点分十进进制格式表表示的IPP地址字符符串。2.3 PP2P网络络介绍P2P技术术源于局域域网共享,其其目标是改改变人们通通过服务器器中转交换换文件的传传统方式,达达到自由交交换资源的的目的。I

43、IBM为P2P下了了如下定义义:系统由由若干互联联协作的计计算机构成成,且至少少具有如下下特征之一一:系统依依存于边缘缘化(非中中央式服务务器)设备备的主动协协作,每个个成员直接接从其他成成员而不是是从服务器器的参与中中受益;系系统中成员员同时扮演演服务器与与客户端的的角色;系系统应用的的用户能够够意识到彼彼此的存在在,构成一一个虚拟或或实际的群群体。P22P网络是是互联网整整体架构的的基础,互互联网中最基本的的 TCPP/IP协协议并没有有客户端和和服务器的的概念,在在通讯过程程中,所有有的设备都都是平等的的一端。PP2P 技技术改变了了“内容”所在的位位置,使其其正在从“中心”走向“边缘”

44、,也就是是说不再如如CS模式式将内容存存于主要的的服务器上上,而是存存在所有用用户的 PPC 机上上。广义的的P2P 网络将 PP2P网络络划分为纯纯分散式 P2P网网络(如gnuttellaa模型)、超级结结点式网络络和混合式式 P2PP网络等大大类。3相关函数数分析与代代码实现3.1多线线程3.1.11 进程介绍绍进程:通常常被定义为为一个正在在运行的程程序的实例例,是一个个程序在其其自身的地地址空间中中的一次执执行活动。进程是资资源申请、调度和独独立运行的的单位,因因此,它使使用系统中中的运行资资源;而程程序不能申申请系统资资源,不能能被系统调调度,也不不能作为独独立运行的的单位,因因此

45、,它不不占用系统统的运行资资源进程由两个个部分组成成:1、操作系系统用来管管理进程的的内核对象象。内核对对象也是系系统用来存存放关于进进程的统计计信息的地地方。2、地址空空间。它包包含所有可可执行模块块或DLLL模块的代代码和数据据。它还包包含动态内内存分配的的空间。如如线程堆栈栈和堆分配配空间。3.1.22 线程介绍绍线程由两个个部分组成成:1、线程的的内核对象象,操作系系统用它来来对线程实实施管理。内核对象象也是系统统用来存放放线程统计计信息的地地方。2、线程堆堆栈,它用用于维护线线程在执行行代码时需需要的所有有参数和局局部变量。当创建线程程时,系统统创建一个个线程内核核对象。该该线程内核

46、核对象不是是线程本身身,而是操操作系统用用来管理线线程的较小小的数据结结构。可以以将线程内内核对象视视为由关于于线程的统统计信息组组成的一个个小型数据据结构。 线程总是在在某个进程程环境中创创建。系统统从进程的的地址空间间中分配内内存,供线线程的堆栈栈使用。新新线程运行行的进程环环境与创建建线程的环环境相同。因此,新新线程可以以访问进程程的内核对对象的所有有句柄、进进程中的所所有内存和和在这个相相同的进程程中的所有有其他线程程的堆栈。这使得单单个进程中中的多个线线程确实能能够非常容容易地互相相通信。 3.1.33 进程与与线程的关关系进程是不活活泼的。进进程从来不不执行任何何东西,它它只是线程

47、程的容器。若要使进进程某操作作,它必须须拥有一个个在它的环环境中运行行的线程,此此线程负责责执行包含含在进程的的地址空间间中的代码码。单个进进程可能包包含若干个个线程,这这些线程都都“同时” 执行进进程地址空空间中的代代码。每个个进程至少少拥有一个个线程,来来执行进程程的地址空空间中的代代码。当创创建一个进进程时,操操作系统会会自动创建建这个进程程的第一个个线程,称称为主线程程。此后,该该线程可以以创建其他他的线程。3.1.44多线程实实现线程只有一一个内核对对象和一个个堆栈,保保留的记录录很少,因因此所需要要的内存也也很少。因因为线程需需要的开销销比进程少少,因此在在编程中经经常采用多多线程

48、来解解决编程问问题,而尽尽量避免创创建新的进进程。3.2 HHook技术术3.2.11 Hook函函数简介及及类型Hook(钩钩子)是WWINDOOWS提供供的一种消消息处理机机制,是指指在程序正正常运行中中接受信息息之前预先先启动的函函数,用来来检查和修修改传给该该程序的信信息,(钩钩子)实际际上是一个个处理消息息的程序段段,通过系系统调用,把把它挂入系系统。每当当特定的消消息发出,在在没有到达达目的窗口口前,钩子子程序就先先捕获该消消息,亦即即钩子函数数先得到控控制权。这这时钩子函函数即可以以加工处理理(改变)该该消息,也也可以不作作处理而继继续传递该该消息,还还可以强制制结束消息息的传递

49、。安装钩子子函数将会会影响系统统的性能。监测“系统范围围事件”的系统钩钩子特别明明显。因为为系统在处处理所有的的相关事件件时都将调调用您的钩钩子函数,这这样系统将将会明显的的减慢。HOOK链链WINDOOWS提供供了14种种不同类型型的HOOOKS,不同的HHOOK可可以处理不不同的消息息。例如:WH_MMOUSEE HOOOK用来监监视鼠标消消息。WIINDOWWS为这几几种HOOOKS维护护着各自的的HOOKK链表。HHOOK链链表是一串串由应用程程序定义的的回调函数数(CALLLBACCK Fuunctiion)队队列,当某某种类型的的消息发生生时,WIINDOWWS向此种种类型的HHO

50、OK链链的第一个个函数(HHOOK链链的顶部)发发送该消息息,在第一一函数处理理完该消息息后由该函函数向链表表中的下一一个函数传传递消息,依依次向下。如果链中中某个函数数没有向下下传送该消消息,那么么链表中后后面的函数数将得不到到此消息。(对于某某些类型的的HOOKK,不管HHOOK链链中的函数数是否向下下传递消息息,与此类类型HOOOK联系的的所有HOOOK函数数都会收到到系统发送送的消息)一一些Hoook子过程程可以只监监视消息,或或者修改消消息,或者者停止消息息的前进,避避免这些消消息传递到到下一个HHook子子过程或者者目的窗口口。最近安安装的钩子子放在链的的开始,而而最早安装装的钩子

51、放放在最后,也也就是后加加入的先获获得控制权权。HOOK的的作用范围围两种类型:局部和远远程 一、局部钩钩子仅钩挂挂您自己进进程的事件件。 二、远程的的钩子还可可以将钩挂挂其它进程程发生的事事件。远程的钩子子又有两种种: 1、基于线线程的 它它将捕获其其它进程中中某一特定定线程的事事件。简言言之,就是是可以用来观察察其它进程程中的某一一特定线程程将发生的的事件。 2、系统范范围的 将将捕捉系统统中所有进进程将发生生的事件消消息。 HOOK类类型Windoows共有有14种HHOOKSS,每一种种类型的HHook可可以使应用用程序能够够监视不同同类型的系系统消息处处理机制。下面描述述所有可以以利

52、用的HHook类类型的发生生时机。(这这些常数值值均可以AAPI浏览览器里查到到)1、WH_CALLLWNDPPROC和和WH_CCALLWWNDPRROCREET HoooksWH_CAALLWNNDPROOC和WHH_CALLLWNDDPROCCRET Hookks使你可可以监视发发送到窗口口过程的消消息。系统统在消息发发送到接收收窗口过程程之前调用用WH_CCALLWWNDPRROC HHook子子过程,并并且在窗口口过程处理理完消息之之后调用WWH_CAALLWNNDPROOCRETT Hoook子过程程。WH_CAALLWNNDPROOCRETT Hoook传递指指针到CWWPRET

53、TSTRUUCT结构构,再传递递到Hoook子过程程。CWPPRETSSTRUCCT结构包包含了来自自处理消息息的窗口过过程的返回回值,同样样也包括了了与这个消消息关联的的消息参数数。2、WH_CBT Hookk在以下事件件之前,系系统都会调调用WH_CBT Hookk子过程,这这些事件包包括:1. 激活活,建立,销销毁,最小小化,最大大化,移动动,改变尺尺寸等窗口口事件;2. 完成成系统指令令;3. 来自自系统消息息队列中的的移动鼠标标,键盘事事件;4. 设置置输入焦点点事件;5. 同步步系统消息息队列事件件。Hook子子过程的返返回值确定定系统是否否允许或者者防止这些些操作中的的一个。3、

54、WH_DEBUUG Hoook在系统调用用系统中与与其它Hoook关联联的Hoook子过程程之前,系系统会调用用WH_DDEBUGG Hoook子过程程。你可以以使用这个个Hookk来决定是是否允许系系统调用与与其它Hoook关联联的Hoook子过程程。4、WH_FOREEGROUUNDIDDLE HHook当应用程序序的前台线线程处于空空闲状态时时,可以使使用WH_FOREEGROUUNDIDDLE HHook执执行低优先先级的任务务。当应用用程序的前前台线程大大概要变成成空闲状态态时,系统统就会调用用WH_FFOREGGROUNNDIDLLE Hoook子过过程。5、WH_GETMMESS

55、AAGE HHook应用程序使使用WH_GETMMESSAAGE HHook来来监视从GGetMeessagge orr PeeekMesssagee函数返回回的消息。你可以使使用WH_GETMMESSAAGE HHook去去监视鼠标标和键盘输输入,以及及其它发送送到消息队队列中的消消息。6、WH_JOURRNALPPLAYBBACK HookkWH_JOOURNAALPLAAYBACCK Hoook使应应用程序可可以插入消消息到系统统消息队列列。以使用用这个Hoook回放放通过使用用WH_JJOURNNALREECORDD Hoook记录下下来的连续续的鼠标和和键盘事件件。WH_JOURRN

56、ALPPLAYBBACK Hookk已经安装装,正常的的鼠标和键键盘事件就就是无效的的。WH_JOURRNALPPLAYBBACK Hookk是全局HHook,它它不能像线程特定定Hookk一样使用用。WH_JOURRNALPPLAYBBACK Hookk返回超时时值,这个个值告诉系系统在处理理来自回放放Hookk当前消息息之前需要要等待多长长时间(毫毫秒)。这这就使Hoook可以以控制实时时事件的回回放。WHH_JOUURNALLPLAYYBACKK是sysstem-widee loccal hhookss,它们不不会被注射射到任何行行程地址空空间。7、WH_JOURRNALRRECORRD

57、 HoookWH_JOOURNAALRECCORD Hookk用来监视视和记录输输入事件。典型的,可可以使用这这个Hoook记录连连续的鼠标标和键盘事事件,然后后通过使用用WH_JJOURNNALPLLAYBAACK HHook来来回放。WWH_JOOURNAALRECCORD Hookk是全局HHook,它它不能像线程特定定Hookk一样使用用。WH_JOURRNALRRECORRD是syystemm-widde loocal hookks,它们们不会被注注射到任何何行程地址址空间。8、WH_KEYBBOARDD Hoook在应用程序序中,WHH_KEYYBOARRD Hoook用来来监视W

58、MM_KEYYDOWNN andd WM_KEYUUP消息,这这些消息通通过GettMesssage or PPeekMMessaage ffuncttion返返回。可以以使用这个个Hookk来监视输输入到消息息队列中的的键盘消息息。9、WH_KEYBBOARDD_LL HookkWH_KEEYBOAARD_LLL Hoook监视视输入到线线程消息队队列中的键键盘消息。10、WHH_MOUUSE HHookWH_MOOUSE Hookk监视从GGetMeessagge 或者者 PeeekMesssagee 函数返返回的鼠标标消息。使使用这个HHook监监视输入到到消息队列列中的鼠标标消息。11

59、、WHH_MOUUSE_LLL HoookWH_MOOUSE_LL HHook监监视输入到到线程消息息队列中的的鼠标消息息。12、WHH_MSGGFILTTER 和和 WH_SYSMMSGFIILTERR HoooksWH_MSSGFILLTER 和 WHH_SYSSMSGFFILTEER Hoooks使使我们可以以监视菜单单,滚动条条,消息框框,对话框框消息并且且发现用户户使用ALLT+TAAB orr ALTT+ESCC 组合键键切换窗口口。WH_MSGFFILTEER Hoook只能能监视传递递到菜单,滚滚动条,消消息框的消消息,以及及传递到通通过安装了了Hookk子过程的的应用程序序建

60、立的对对话框的消消息。WHH_SYSSMSGFFILTEER Hoook监视视所有应用用程序消息息。WH_MSSGFILLTER 和 WHH_SYSSMSGFFILTEER Hoooks使使我们可以以在模式循循环期间过过滤消息,这这等价于在在主消息循循环中过滤滤消息。通过调用CCallMMsgFiilterr funnctioon可以直直接的调用用WH_MMSGFIILTERR Hoook。通过过使用这个个函数,应应用程序能能够在模式式循环期间间使用相同同的代码去去过滤消息息,如同在在主消息循循环里一样样。13、WHH_SHEELL HHook外壳应用程程序可以使使用WH_SHELLL Hoo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论