优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

VC基于网络的虚拟实验平台设计与实现

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
摘要基于网络的虚拟实验平台是在能够进行网络通信的基础之上将计算机上虚拟的各种仪器、器件,按实验要求组装成一个完整的实验环境,实现搭接实验电路,演示实验过程等功能。远程指导模块是其中的一个功能模块。它分成指导端和被指导端两部分,指导端通过HOOK技术,采集本地机鼠标和键盘信息;然后将这些信息打包,通过P2P网络通信机制将信息包传给被指导端;在被指导端将信息包信息解出,通过mouse_event、keybd_event等函数去控制被指导端的鼠标、键盘动作,实现相关的一些远程指导动作。本模块在VC环境下开发,用到了Windows Socket编程技术,P2P编程思想,HOOK技术,多线程技术等多方面的技术。由于整个系统模块很多,本设计中编写了独立的测试程序,经过测试基本达到预期的设计目标。关键词:远程指导;P2P;Windows Socket编程;HOOK;多线程 1引言近年来,随着信息技术的发展,计算机的普及,网络为我们带了更多的便利。网络技术的发展,引发了控制领域的深刻技术变革,控制系统结构沿着网络化方向与控制系统体系沿着开放性方向发展将是控制系统技术创新的大潮流。计算机局域网络、企业网络、现代信号处理等等使自动化系统与工业控制系统从体系结构、控制方法、产品系列、人机协作方法等都发生了重大的变化。进入21世纪的控制系统以网络为主要特征:一方面是在自动化与工业控制中需要更深层次地渗透通信与网络技术,另一方面是在通信网络的管理与控制中也要求更多的采用控制理论与策略并且由于系统中需要大量的数据交换,服务器的负担很重,所以我们就研究出了基于网络的虚拟实验平台。作为基于网络的虚拟实验平台的远程指导模块,本文通过Windows Socket编程,以HOOK技术,多线程技术作为基础,再利用其他的API函数来实现被指导端对指导端发送请求信息,将信息打包以后通过网络传输到服务器端,指导端收到信息以后,将信息解包,根据信息提示来对被指导端进行相关指导:获取客户的相关信息、锁定鼠标和键盘,对鼠标进行动态的控制和指导键盘的信息输入。1.1项目背景全球信息化的发展,计算机网络给我们提供了优越的通信平台,优秀的软件系统必须要具有网络功能。虚拟实验平台正是应这个大需求而诞生。并且随着信息技术的发展,网络无疑为我们带了更多的便利,同时一个优秀的系统必须要具有网络功能,要完成这些功能,那就要把各种网络通过某种方式连接起来,在网络实现过程中存在穿透NAT的问题,此问题存在较长时间,后来因为网络地址不够而产生了P2P技术,伴随着P2P技术的出现,利用UDP实现P2P网络穿越NAT的即时通讯技术,而问题即被解决。1.2项目介绍1.2.1基于网络的虚拟实验平台计算机技术、大规模集成电路技术和通讯技术的飞速发展,为虚拟实验的发展奠定了坚实的基础。虚拟实验就是在通用计算机上加载相应的软件或硬件,使得使用者在操作这台计算机时,就像是在操作一台专用的传统试验设备一样。在虚拟实验系统中,软件是整个系统的关键,任何使用者都可以通过软件的相关设置来达到要实现实验的效果。虚拟实验就是利用外部输入(如鼠标的点击、拖动和键盘的敲击等),将计算机上虚拟的各种仪器,按实验要求、过程,组装成一个完整的实验环境,同时在这个环境中完成实验操作,包括实验器材的添加、实验条件的改变、数据采集以及实验结果的模拟、分析。它包含了虚拟仿真技术、计算机技术、实验技术、网络技术与专业等多方面理论知识。3相关函数分析与代码实现3.1多线程3.1.1进程介绍进程:通常被定义为一个正在运行的程序的实例,是一个程序在其自身的地址空间中的一次执行活动。进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源;而程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此,它不占用系统的运行资源进程由两个部分组成:1、操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。2、地址空间。它包含所有可执行模块或DLL模块的代码和数据。它还包含动态内存分配的空间。如线程堆栈和堆分配空间。3.1.2线程介绍线程由两个部分组成:1、线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。2、线程堆栈,它用于维护线程在执行代码时需要的所有参数和局部变量。当创建线程时,系统创建一个线程内核对象。该线程内核对象不是线程本身,而是操作系统用来管理线程的较小的数据结构。可以将线程内核对象视为由关于线程的统计信息组成的一个小型数据结构。 线程总是在某个进程环境中创建。系统从进程的地址空间中分配内存,供线程的堆栈使用。新线程运行的进程环境与创建线程的环境相同。因此,新线程可以访问进程的内核对象的所有句柄、进程中的所有内存和在这个相同的进程中的所有其他线程的堆栈。这使得单个进程中的多个线程确实能够非常容易地互相通信。 3.1.3进程与线程的关系进程是不活泼的。进程从来不执行任何东西,它只是线程的容器。若要使进程某操作,它必须拥有一个在它的环境中运行的线程,此线程负责执行包含在进程的地址空间中的代码。单个进程可能包含若干个线程,这些线程都“同时” 执行进程地址空间中的代码。每个进程至少拥有一个线程,来执行进程的地址空间中的代码。当创建一个进程时,操作系统会自动创建这个进程的第一个线程,称为主线程。此后,该线程可以创建其他的线程。3.1.4多线程实现线程只有一个内核对象和一个堆栈,保留的记录很少,因此所需要的内存也很少。因为线程需要的开销比进程少,因此在编程中经常采用多线程来解决编程问题,而尽量避免创建新的进程。

包含资料: 【买计算机毕业论文就到计算机毕业论文网】 think58好,好think58 [资料来源:http://think58.com]

think58 [资料来源:http://www.THINK58.com]

源程序+论文(15000字以上)+可执行程序+答辩稿ppt+开题报告+外文翻译
copyright think58

[来源:http://www.think58.com]

获取资料请您联系本站客服

[来源:http://think58.com]