网络远程指导模块的设计与实现(虚拟实验平台)
摘 要
基于网络的虚拟实验平台是在能够进行网络通信的基础之上将计算机上虚拟的各种仪器、器件,按实验要求组装成一个完整的实验环境,实现搭接实验电路,演示实验过程等功能。远程指导模块是其中的一个功能模块。它分成指导端和被指导端两部分,指导端通过HOOK技术,采集本地机鼠标和键盘信息;然后将这些信息打包,通过P2P网络通信机制将信息包传给被指导端;在被指导端将信息包信息解出,通过mouse_event、keybd_event等函数去控制被指导端的鼠标、键盘动作,实现相关的一些远程指导动作。本模块在VC环境下开发,用到了Windows Socket编程技术,P2P编程思想,HOOK技术,多线程技术等多方面的技术。由于整个系统模块很多,本设计中编写了独立的测试程序,经过测试基本达到预期的设计目标。 [资料来源:http://Doc163.com]
关键词:远程指导;P2P;Windows Socket编程;HOOK;多线程
Design and Implementation of Remote Guidance Module Based on Network Virtual Experiment Platform
Abstract
Under the foundation of network communications,the network-based Virtual Experimental Platform could integrate various computer virtual devices into a complete experimental environment according to the experiment requirements, and connect the experiment circuit and demonstrate the process of experiment. The remote guiding module was one of function modules, which was divided into guiding end and the guided end. With HOOK, the guiding end captured the information of local mouse and keyboard, and packed the information to send to the guided part through peer-to-peer network communication mechanism. The guided end will unpack the information, and control the mouse and keyboard of the guided end by mouse_event, keybd_event functions to implement some remote control actions. Developed under VC environment, the remote guidance module used Windows Socket programming technology, P2P programming ideas, HOOK technology, multithreading technology, and etc. Because there are many modules for the whole system, an independent testing procedure was programmed to test the modules, which had been proven to achieve the desired objectives
[资料来源:www.doc163.com]
Key words: Remote guidance;Peer-to-Peer;Windows Socket programming;HOOK;Multithreading
1 功能要求
完成远程指导的基本功能,指导端和被指导端能够进行P2P网络通信,指导端能够控制被指导端的鼠标和键盘,并且能够存储相关信息,还能够对鼠标进行动态控制和指导键盘的输入。
2 Client/Server(客户端/服务器)结构工作过程
Client/Server(客户端/服务器)结构,通过将任务合理分配到Client 端和Server 端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势,在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(client/server),即客户向服务器提出请求,服务器接收到请求后,提供相应的服务。客户机/服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,网络之间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是基于客户机/服务器模式的TCP/IP:
客户机/服务器模式在操作过程中采取的是主动请求的方式。首先服务器方要先启动,并根据请求提供相应的服务:打开一个通信通道并告知本地主机,它愿意在某一地址和端口上接收客户请求。等待客户请求到达该端口。接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一个新的进程(或线程)来处理这个客户请求。新进程(或线程) 处理此客户请求,并不需要对其它请求做出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。返回第二步,等待另一客户请求,关闭服务器。 [来源:http://www.doc163.com]
客户方:打开一个通信通道,并连接到服务器所在主机的特定端口。向服务器发送服务请求报文,等待并接收应答;继续提出请求。请求结束后关闭通信通道并终止。
目 录
1引言 1
1.1项目背景 1
1.2项目介绍 1
1.2.1 基于网络的虚拟实验平台 1
1.2.2 远程指导模块 2
1.3 项目要求 2
1.3.1 功能要求 2
1.3.2 Client/Server(客户端/服务器)结构工作过程 2
2 网络基础知识简介 3
2.1 OSI与TCP/IP参考模型的对应关系 3
2.1.1 OSI参考模型 3
2.1.2 TCP/IP参考模型 4
2.2 WINDOWS SOCKET编程原理及操作步骤 5
(毕业设计)
2.3 P2P网络介绍 8
3 相关函数分析与代码实现 8
3.1多线程 8
3.1.1 进程介绍 8
3.1.2 线程介绍 8
3.1.3 进程与线程的关系 9 [来源:http://Doc163.com]
3.1.4 多线程实现 9
3.2 HOOK技术 9
3.2.1 Hook函数简介及类型 9
3.2.2 Hook子过程处理 12
3.2.3 Hook的安装/卸载 13
3.3 设计流程及函数思想 15
3.3.1 简述 15
3.3.2 代码分析 15
4 程序测试与相应改进 18
4.1 程序界面 18
4.2程序相关测试 19
4.2.1 获取对方相关信息 19
4.2.2发送消息及存贮 19
4.2.3被指导端显示信息 20
4.3 相关改进 20
结 论 20
参考文献 21
致 谢 22
声 明 23 [资料来源:Doc163.com]