网络远程通信和控制程序设计毕业设计论文Word文档下载推荐.docx
- 文档编号:17879989
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:42
- 大小:823.04KB
网络远程通信和控制程序设计毕业设计论文Word文档下载推荐.docx
《网络远程通信和控制程序设计毕业设计论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《网络远程通信和控制程序设计毕业设计论文Word文档下载推荐.docx(42页珍藏版)》请在冰豆网上搜索。
实时控制。
本课题设计为一个通信应用程序,用到了多项技术,诸如:
异步模式socket、面向对象编程、软件工程思想、APIHOOK等。
本系统采用VisualC++6.0作为开发工具,整个系统操作简洁、界面友好、功能灵活、实用,实现了包括客户端屏幕监控、文件操作及传输、系统服务和注册表监控等基本功能,基本完成了远程控制中所需要到的主要功能。
关键词:
套接字面向对象软件工程远程监控
Abstract
Alongwiththedevelopmentofthecalculatorinformationmodernindustry,theremotecontrolsystemismoreandmorevaluebybusinessenterpriseandschool.Thistextmainlyanalyzedsomebasicfunctionsoftheremotecontrolsystemandconstitutethecircumstance,includingtherequirementsanalysis,thestructureofthesystem,thefunctionmoldpiecedividethelineanalyzeetc,thepointmaketheintroductiontowardsapplyingtheactualdevelopmentoftheprocedurerealization.Cometotheconsistencyandsafetiesofthedata,andapplytheprocedurefunctioncomplete.ItwillintroducetheVisualC++6.0programmingenvironmentandthefeaturesoftheWinSocketatthesametime.
Thistopicdesignisinordertoadapttheremotecontrolrequest,maketheremoteassistancecarryonthelevelbydesignthatthemanagementraisesthecalculatorof.Remotecontrolincludesseveralcontents,thistopicdesignjustacceptedtosetupamongthemofonepartnamely:
Thereal-timecontrol.Thistopicusedanumberoftechniques,forexample:
Thesocketofasynchronousmode,Object-Oriented,SoftwareEngineering,APIHOOKetc.
ThissystemusesVisualC++6.0asadevelopmenttool,theoperationoftheentiresystemissimple,interfaceisuser-friendly,functionisflexibleandpractical,achievedthebasicfunctionsincludingscreenmonitoring,controlandtransferfiles,processmonitoring,systemservicesandregistrymonitoring,completethemainfunctionsofwhattheRemoteAssistancesystemneedtogo.
Keyword:
Socket,Object-Oriented,Software-Engineering,Hook,remotecontrol
前言
随着计算机网络的飞速发展以及网络技术的日益普及和大众化,人们可以很方便地从Internet上获取和自己工作生活密切相关的信息,世界也真正变成一个地球村,我们可以和世界上其他任何一个人通过计算机网络进行沟通,信息资源达到了高度的共享。
从这一点得到启发,希望能设计一个远程控制系统,通过它可以在家里控制办公室里的计算机。
如果你是软件开发商,你的员工可以通过它在办公室里远程为客户配置系统、对产品进行维护,如果客户向你报告软件产品出现问题你可以远程对产品进行调试,最终解决问题。
这样员工就不会因长期的劳苦奔波而抱怨,用户也不会因为你不能及时解决问题而和你讨价还价,当然,也为公司节约了人力、财力和物力。
远程控制软件一般分两个部分:
一部分是客户端程序Client,另一部分是服务器端程序Server,在使用前需要将客户端程序安装到主控端电脑上,将服务器端程序安装到被控端电脑上。
它的控制的过程一般是先在主控端电脑上执行客户端程序,像一个普通的客户一样向被控端电脑中的服务器端程序发出信号,建立一个特殊的远程服务,然后通过这个远程服务,使用各种远程控制功能发送远程控制命令,控制被控端电脑中的各种应用程序运行,这种远程控制方式称为基于远程服务的远程控制。
通过远程控制软件,可以进行很多方面的远程控制,包括获取目标电脑屏幕图像、窗口及进程列表等等。
远程控制具有一下优点:
便于用户能够在任何地方通过网络及时,快速的访问,控制自己的主机。
特别是对于网络管理员,技术服务人员来说,远程控制提供了一个便捷,高效的手段。
当然,远程控制软件是一把双刃剑,有优点就会有缺点,它存在比较严重的安全隐患。
一方面给用户和网络管理员工作带了很大的方便,另一方面也给一些居心不良者留下后门。
形成很多木马程序。
这就需要对软件在设计方面做一些安全考虑。
1远程通信与控制技术概述
1.1课题背景
通常企业内部或者IT公司的客户技术支持部门都有技术支持业务,其任务是通过电话解答疑难问题,努力减少技术人员到现场服务或者让用户把设备送到支持中心进行维护。
这种技术支持方式尽管被普遍采用,但效率不高而且大大增加了技术支持成本。
通常,技术支持必须依赖技术人员和用户之间的口头交流来进行,这种交流既耗时又容易出错。
许多商业用户对计算机知之甚少,然而当遇到问题时,他们必须向技术人员提供故障情报及相关操作。
在尝试解决问题时,技术人员可能指导用户执行一系列复杂的过程,而这些过程对用户来说或许完全不熟悉;
如果用户不能正确的按要求操作,反而使问题恶化。
此外,如果通过电话不能解决问题,那么在技术人员亲自到用户现场解决问题之前,计算机将无法继续使用,导致工作延误。
电脑中的远程控制技术,始于DOS时代,只不过当时由于技术上没有什么大的变化,网络不发达,市场没有更高的要求,所以远程控制技术没有引起更多人的注意。
但是,随着网络的高度发展,电脑的管理及技术支持的需要,远程操作及控制技术越来越引起人们的关注。
远程控制一般支持下面的这些网络方式:
LAN、WAN、拨号方式及互联网方式。
此外,有的远程控制软件还支持通过串口、并口、红外端口来对远程机进行控制(不过这里说的远程电脑,只能是有限距离范围内的电脑了)。
传统的远程控制软件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP等协议来实现远程控制,不过,随着网络技术的发展,很多远程控制软件提供通过Web页面以Java技术来控制远程电脑,这样可以实现不同操作系统下的远程控制。
TCP协议远程控制主要有windows系统自带的远程桌面、pcAnyWhere(赛门铁克公司)等,网上98%的远程控制软件都使用TCP协议来实现远程控制(包括上述几款),使用TCP协议的远程控制软件的优势是稳定、连接成功率高;
缺陷是双方必须有一方具有公网IP(或在同一个内网中),否则就需要在路由器上做端口映射。
这意味着你只能用这些软件控制拥有公网IP的电脑,或者只能控制同一个内网中的电脑(比如控制该公司里其它的电脑)。
你不可能使用TCP协议的软件从某一家公司的电脑,控制另外一家公司的内部电脑,或者从网吧、宾馆里控制你办公室的电脑,因为他们处于不同的内网中。
80%以上的电脑都处于内网中(使用路由共享上网的方式即为内网),TCP软件不能穿透内网的缺陷,使得该类软件使用率大打折扣。
但是目前很多远程控制软件支持从被控端主动连接到控制端,可以一定程度上弥补该缺陷。
UDP协议远程控制与TCP协议远程控制不同,UDP传送数据前并不与对方建立连接,发送数据前后也不进行数据确认,从理论上说速度会比TCP快(实际上会受网络质量影响)。
最关键的是:
使用UDP协议可以利用UDP的打洞原理(UDPHolePunching技术)穿透内网。
从而解决了TCP协议远程控制软件需要做端口映射的难题。
这样,即使双方都在不同的局域网内,也可以实现远程连接和控制。
QQ、MSN、网络人远程控制软件、XT800的远程控制功能都是基于UDP协议的。
你会发现使用穿透内网的远程控制软件无需做端口映射即可实现连接,这类软件都需要一台服务器协助程序进行通讯以便实现内网的穿透。
由于IP资源日益稀缺,越来越多的用户会在内网中上网,因此能穿透内网的远程控制软件,将是今后远程控制发展的主流方向。
1.2目的以及意义
本文正是在上文提到的背景下提出的,目的就是为了解决计算机的远程操作,降低企业对软件的后期维护成本,提高计算机远程通信能力的减少误操作率来提升远程工作者的工作效率,设计出一款计算机网络远程控制系统。
远程控制系统能使技术人员直接操作远程计算机,就像操作本地机器一样,无须用户介入,技术人员技能得到该机器的问题的第一手材料,从而加快了问题的解决。
实际上,使用远程控制工具的技术人员能够做到解答疑难问题,安装和配置软件,把软件下载到用户计算机上,配置应用程序和系统软件设置并可通过实际操作培训用户。
总之,本毕业设计题目的设计与实现具有很大的现实意义。
1.3C++及编程模式简介
1.3.1VisualC++简介
MicrosoftVisualC++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。
它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。
它以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。
其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。
这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。
VisualC++的资源编辑器能以所见即所得的形式直接编辑程序的用户界面,为所有资源分配ID标识号。
ClassWizard能把对话框模板与生成的类定义或与已有的类代码连接起来,为菜单项、控制等资源生成空的处理函数模板,创建消息映射条目,并将资源ID与处理函数连接起来。
通过使用AppWizard,程序员的编程工作便简化为用资源编辑器直观的设计界面,完善对话框类代码,在空的处理函数模板处填写响应用户操作的代码,这是一种比较完善的可视化编程方法。
但产品名“VisualC++”也容易误导人,让人认为自己使用的是一个与MicrosoftVisualBasic类似的完全可视化的系统。
然而,使用VisualC++,开发人员必须真正地阅读和编写C++代码。
VisualC++向导可以节省时间和提高精度,但是,程序员也必须理解向导产生的代码,并且,最重要的是,还必须理解MFC库的结构和Windows操作系统的内部工作方式。
1.3.2MFC应用程序框架
MFC实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是Windows下开发人员使用的专业C++SDK(SDK,StandardSoftWareDevelopKit,专业开发平台),MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VC++血肉相连的部分(注意C++和VC++的区别:
C++是一种程序设计语言,是一种大家都承认的软件编制的通用规范,而VC++只是一个编译器,或者说是一种编译器+源程序编译器的IDE,WS,PlatForm,这跟Pascal和Delphi的关系一个道理,Pascal是Delphi的语言基础,Delphi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于Basic语言和VB的关系,Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如面向对象程序设计的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言),MFC同BC++集成的VCL一样是一个非外挂式的软件包,类库,只不过MFC类是微软为VC++专配的。
MFC是WinAPI与C++的结合,API,即微软提供的Windows下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行,比如VB,VC++,JAVA,Delhpi编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在Windows的消息机制和绘图里,遵守Windows作为一个操作系统的内部实现,这其实也是一种必要,微软如果不提供API,这个世上对Windows编程的工作就不会存在,微软的产品就会迅速从时尚变成垃圾,上面说到MFC是微软对API函数的专用C++封装,这种结合一方面让用户使用微软的专业C++SDK来进行Windows下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Windows下用C++&
MFC编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价(这是微软的一向作风),因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的。
MFC不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建,销毁),而是一些在Windows(用MFC编写的程序绝大部分都在Windows中运行)中实现内部处理的类,如数据库的管理类等,学习中最应花费时间的是消息和设备环境,对C++和MFC的学习中最难的部分是指针,C++面向对象程序设计的其它部分,如数据类型,流程控制都不难,建议学习数据结构C++版。
MFC是微软封装了的API。
windows作为一个提供功能强大的应用程序接口编程的操作系统,的确方便了许多程序员,传统的win32开发(直接使用windows的接口函数API)对于程序员来说非常的困难,因为,API函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。
MFC是面向对象程序设计与Applicationframework的完美结合,他将传统的API进行了分类封装,并且为使用者创建程序的一般框架。
应用程序框架的一种定义是提供一般应用程序需要的全部面向对象软件组件的集成集合。
C++流行的一个原因是它可以用类库扩充。
类库是可在应用程序中使用的有关C++类的集合。
应用程序框架是类库的超集。
一般的类库只是一种孤立的类的集合,用来嵌入在任何程序中,但是,应用程序框架却定义了程序的结构。
自从MFC库发布以来,MFC已经成为主要的Windows类库。
使用MFC类库构建应用程序具有以下优点。
●MFC库是C++的MicrosoftWindowsAPI。
●应用程序框架生成的应用程序使用了标准的结构,具有标准化的用户接口,这对具有标准用户界面的Win32程序来说,可以极大的减轻程序员的负担,使程序员不必过多地考虑界面,可把主要精力放在程序设计上,以提高程序设计的效率。
●使用应用程序框架的应用程序不仅小,而且运行速度快,具有很大的灵活性。
MFC封装了Win32SDK中的几乎所有函数,能实现Win32系统的任何功能。
●MFC框架降低了编码的复杂性。
●MFC库应用程序框架有丰富的特性,如:
WindowsAPI的C++接口、通用的(非Windows所特有的)类、“共用根对象”类层次结构、流线式多文档界面(MDI)应用程序支持等。
●强大的功能。
除封装了大部分的Win32SDK函数外,MFC还提供了应用程序本身的数据和操作及ActiveX、OLE、Internet、WinSock、DAO(DataAccessObjects)、ODBC(OpenDataBaseConnectivity)等操作类。
MFC框架的核心是文档/视图结构(Document-ViewArchitecture),这是一个很好用、但又往往较难以入门的功能。
简单的说,文档/视图结构就是将数据和对数据的观察或数据的表现(显示)相分离。
文档仅处理数据的实际读、写操作,视图则是显示和处理数据的窗口,视图可以操作文档中的数据。
1.3.3MFC的消息映射
在使用VisualC++进行Win32程序设计时,消息映射是一个非常重要的概念。
Windows应用程序是消息驱动的,应用程序不能直接得到用户所做的操作,如鼠标按键、键盘输入和窗口移动等。
这些操作由操作系统管理,操作系统检测到操作事件后,便向相关的应用程序发送消息,应用程序响应这些消息来完成用户的操作。
1、消息
Windows中的消息是操作系统与应用程序之间、应用程序与应用程序之间、应用程序各对象之间相互控制与传递信息的方式。
消息的基本格式如下:
MessagewParamlParam
Message是消息名称;
wParam是与消息相关的Word型参数;
lParam是与消息相关的Long型参数。
消息主要有以下3类。
Windows系统消息:
Windows系统向窗口发送的消息,由窗口(Window)或视图(View)进行响应处理。
这类消息包括除WM_COMMAND消息之外的名称以WM_开始的其他消息。
控制通知消息:
控制或子窗口传给父窗口的WM_COMMAND通知的消息。
命令消息:
在响应用户接口操作时,将产生WM_COMMAND命令消息。
其参数指定了用户接口的标识号,如菜单项和按钮等ID号。
2、消息映射过程
在使用AppWizard创建应用程序时,MFC应用程序框架设置了相应的消息处理函数来响应消息,以完成相应的操作。
消息处理函数是某些类(通常是窗口类)的成员函数和程序员在其中编写响应消息时应进行操作的代码。
框架将消息和它们的处理函数连接起来就是消息映射。
消息映射使应用程序在接收到消息时调用对应的消息处理函数来响应和处理消息。
ClassWizard在创建新类时将为其创建一个消息映射,并为每个类能响应的消息和命令增加对应的处理函数。
在源代码中,消息映射开始于BEGIN_MESSAGE_MAP宏,结束于END_MESSAGE_MAP宏,中间由一系列预定义的被称为“条目宏”的宏组成。
其基本格式如下:
BEGIN_MESSAGE_MAP(classname,parentclassname)
//{{AFX_MSG_MAP(classname)
条目宏1
条目宏2
条目宏3
…………
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
其中classname为拥有消息映射的当前类名,parentclassname为当前类的父类名。
条目宏定义了类所处理的消息与其对应的函数。
常用的条目宏类型如表1.1所示。
Windows消息的处理函数在CWnd类中进行了预定义,类库以消息名为基础定义这些处理函数的名称,且MFC要求所有消息处理函数声明为afx_msg类型。
例如,消息WM_PAINT的处理函数在CWnd类中的声明如下:
afx_msgvoidOnPaint();
表1.1消息映射条目宏
消息类型
宏格式
说明
Windows消息
ON_WM_XXXX
WM_XXXX为Windows消息名
命令
ON_COMMAND(ID,Function)
ID为命令标识号,Function为处理函数名
更新命令
ON_UPDATE_COMMAND_UI(ID,Function)
控制通知
ON_XXXX(ID,Function)
ID为控制标识号,Function为处理函数名
用户定义消息
ON_MESSAGE(ID,Function)
ID为消息标识号,Function为处理函数名
用户注册消息
ON_REGISTERED_MESSAGE(ID,Function)
通过ClassWizard在派生类中用同样的原型定义处理函数并为该函数生成消息映射条目,然后由程序员编写处理函数代码,并在派生类中覆盖了其父类的消息处理函数。
在有些情况下,必须在派生类的消息处理函数中调用其父类的消息处理函数,使Windows和基类能对消息进行处理。
ClassWizard将在生成的处理函数中建议是否应调用父类的消息处理函数及调用的次序。
除此之外,用户定义和注册的消息、命令和控制通知都没有默认的处理函数,需要在定义时声明,一般根据其ID名称来为函数命名。
1.4系统架构的模式
C/S结构,即Client/Server(客户机/服务器)结构,软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。
1.4.1C/S结构模式
Client/Server结构,它的发展经历了两个阶段:
从两层结构到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 远程 通信 控制程序 设计 毕业设计 论文