基于网络的虚拟实验平台
---远程指导模块的设计与实现
摘 要
基于网络的虚拟实验平台是在能够进行网络通信的基础之上将计算机上虚拟的各种仪器、器件,按实验要求组装成一个完整的实验环境,实现搭接实验电路,演示实验过程等功能。远程指导模块是其中的一个功能模块。它分成指导端和被指导端两部分,指导端通过HOOK技术,采集本地机鼠标和键盘信息;然后将这些信息打包,通过P2P网络通信机制将信息包传给被指导端;在被指导端将信息包信息解出,通过mouse_event、keybd_event等函数去控制被指导端的鼠标、键盘动作,实现相关的一些远程指导动作。本模块在VC环境下开发,用到了Windows Socket编程技术,P2P编程思想,HOOK技术,多线程技术等多方面的技术。由于整个系统模块很多,本设计中编写了独立的测试程序,经过测试基本达到预期的设计目标。http://www.16sheji8.cn/
关键词:远程指导;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
Key words: Remote guidance;Peer-to-Peer;Windows Socket programming;HOOK;Multithreading
目 录
论文总页数:23页
1引言 1http://www.16sheji8.cn/
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
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被指导端显示信息 20http://www.16sheji8.cn/
4.3 相关改进 20
结 论 20
参考文献 21
致 谢 22
声 明 23
1引言
近年来,随着信息技术的发展,计算机的普及,网络为我们带了更多的便利。网络技术的发展,引发了控制领域的深刻技术变革,控制系统结构沿着网络化方向与控制系统体系沿着开放性方向发展将是控制系统技术创新的大潮流。计算机局域网络、企业网络、现代信号处理等等使自动化系统与工业控制系统从体系结构、控制方法、产品系列、人机协作方法等都发生了重大的变化。进入21世纪的控制系统以网络为主要特征:一方面是在自动化与工业控制中需要更深层次地渗透通信与网络技术,另一方面是在通信网络的管理与控制中也要求更多的采用控制理论与策略并且由于系统中需要大量的数据交换,服务器的负担很重,所以我们就研究出了基于网络的虚拟实验平台。http://www.16sheji8.cn/
作为基于网络的虚拟实验平台的远程指导模块,本文通过Windows Socket编程,以HOOK技术,多线程技术作为基础,再利用其他的API函数来实现被指导端对指导端发送请求信息,将信息打包以后通过网络传输到服务器端,指导端收到信息以后,将信息解包,根据信息提示来对被指导端进行相关指导:获取客户的相关信息、锁定鼠标和键盘,对鼠标进行动态的控制和指导键盘的信息输入。
1.1项目背景
全球信息化的发展,计算机网络给我们提供了优越的通信平台,优秀的软件系统必须要具有网络功能。虚拟实验平台正是应这个大需求而诞生。并且随着信息技术的发展,网络无疑为我们带了更多的便利,同时一个优秀的系统必须要具有网络功能,要完成这些功能,那就要把各种网络通过某种方式连接起来,在网络实现过程中存在穿透NAT的问题,此问题存在较长时间,后来因为网络地址不够而产生了P2P技术,伴随着P2P技术的出现,利用UDP实现P2P网络穿越NAT的即时通讯技术,而问题即被解决。
1.2项目介绍
1.2.1 基于网络的虚拟实验平台
计算机技术、大规模集成电路技术和通讯技术的飞速发展,为虚拟实验的发展奠定了坚实的基础。虚拟实验就是在通用计算机上加载相应的软件或硬件,使得使用者在操作这台计算机时,就像是在操作一台专用的传统试验设备一样。在虚拟实验系统中,软件是整个系统的关键,任何使用者都可以通过软件的相关设置来达到要实现实验的效果。
虚拟实验就是利用外部输入(如鼠标的点击、拖动和键盘的敲击等),将计算机上虚拟的各种仪器,按实验要求、过程,组装成一个完整的实验环境,同时在这个环境中完成实验操作,包括实验器材的添加、实验条件的改变、数据采集以及实验结果的模拟、分析。它包含了虚拟仿真技术、计算机技术、实验技术、网络技术与专业等多方面理论知识。http://www.16sheji8.cn/
1.2.2 远程指导模块
远程指导模块是基于网络的虚拟实验平台的一个通信模块,是基于Windows Socket编程,使用Client/Server(客户端/服务器)结构来实现模块的功能,以VC为开发环境,同时以HOOK技术和多线程技术作为基础,再利用API相关函数来实现指导端和被指导端的互动。