论文正文参考范本.docx

上传人:b****6 文档编号:7239680 上传时间:2023-01-22 格式:DOCX 页数:32 大小:242.88KB
下载 相关 举报
论文正文参考范本.docx_第1页
第1页 / 共32页
论文正文参考范本.docx_第2页
第2页 / 共32页
论文正文参考范本.docx_第3页
第3页 / 共32页
论文正文参考范本.docx_第4页
第4页 / 共32页
论文正文参考范本.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

论文正文参考范本.docx

《论文正文参考范本.docx》由会员分享,可在线阅读,更多相关《论文正文参考范本.docx(32页珍藏版)》请在冰豆网上搜索。

论文正文参考范本.docx

论文正文参考范本

学位论文摘要与正文内容提纲:

1)简述背景,提出问题,说明题目的意义与价值。

2)分析研究相关有理论、原理与技术。

3)提出理论方案与技术路线。

4)研究的工作与内容及创新

5)验证结论、性能指标。

6)结果与结论的理论与实际价值。

*******************************************************

基于C#的远程控制管理设计

摘要

1.xxx

本程序是用Microsoft平台下的C#语言实现远程控制。

C#是一种简单、现代、面向对象且类型安全的编程语言。

本系统中,客户端使用的是C#的窗体应用程序,服务器端用的是服务应用程序。

2

3

在程序中,用套接字实现了远程信息交换,它的具体功能主要是文件上传和文件下载。

在这之中,用TcpClient和TcpListener来完成远程连接,服务器端打开一个端口监听来自网络中的信息流,客户端使用服务器端的IP和监听的端口号取得与服务器的连接。

客户端使用TcpClient的对象来初始化NetWorkStream对象,从而实现对字节流的传送的接收操作;服务器端使用TcpListener的对象来初始化NetWorkStream对象,从而获得与客户端的网络流交换。

本程序中客户端通过发送关机命令实现远程关闭服务器电脑;使用服务器的MAC地址实现远程唤醒服务器。

客户端向服务器发送16次服务器的MAC地址,便能实现远程服务器的唤醒操作。

在程序中使用键盘钩子(HOOK)模拟键盘、鼠标事件模拟鼠标。

要实现桌面的远程控制,首先就是获取服务器的屏幕,用类似于传送文件的方式把服务器屏幕图片流传送到客户端显示。

在客户端用键盘钩子获取所有按键事件,能够屏蔽系统对键盘的响应(如按下Windows键,开始菜单不会弹出),只把按下的键的健值记录下来传送到服务器端;客户端获取鼠标是用鼠标事件获取,包括左右键的单双击及中键的滚动。

服务器端获得客户端传送过来的键盘、鼠标事件后,用API实现模拟按键操作和模拟鼠标点击、滚动操作。

从而达到客户端远程控制服务器端的目的。

4

5

关键字:

套接字、键盘钩子、C/S结构、远程控制

C#-BasedDesignOfTheRemoteControlandManagement

Abstract:

ThissoftwareuseC#underMSplatformtoachivevecomputerremotecontrol.c#isaprogramminglanguagethatissimple,modern,object-orientedandtypeofsecurity.Inthissystem,client-sideuseWindowsFormapplicationandservice-sideuseWindowsServiceapplicationtoachieve.

Intheprogram,Socketisusedtocompleteremoteinfomationexchange.It'sspecificfunctionisuploadafileorfolderanddownloadafileorfolder.InSocket,twoclassTcpClientandTcpListenerrealizeremoteconnectthrowInternet,service-sideopenaporttolistentheinformationformInternet,andclient-sideconnectwiththeservice-sidebyIPandportofservercomputer.Client-sideuseclassTcpClienttoinitializeNetWorkStream'sobject,sothatNetWorkStream'sobjectcangetsendandgetbytestreamwithservicecomputer.Server-sideuseTcpListenertoinitializeNetWorkStream'sobjecttocompletethesameworkofClient-side.Intheprogram,client-sidesend"ShutDown"commandtoservice-sideandservercomputercloseitself.Client-sideusetheMACaddressofservercomputertowakeupservercomputer.Client-sidesendtheMACaddress16timestoservice-sideandthenservercomputeriswakedup.

Intheremotecontrolpart,weusekeyboardHOOKtosimulatekeyboardandusemouseeventtosimulatemouseoperation.Inordertoachieveremotecontrol,firstweshouldgetservice-side'sscreen,andthenwecantranslateittoclient-sideinthewaylikedownloadfile.WhenweuseHOOKtosimuatekeyboardandmouseeventtosimulatetomouse,localsystemwillnotresponse,suchaswhenwepressthesystemkey,thestartmenuwillnotopen.Wegetlocalkeyboardandmouseeventandsendittoservice-side,thenanalyzethecommandandsimulatetheminservercomputer.

KeyWords:

Socket、KeyboardHOOK、C/S、RemoteControl

目录

第一章前言1

1.1课题背景1

1.2课题意义1

1.3研究内容1

1.4论文结构2

第二章相关技术介绍4

2.1.NET框架4

2.2C#编程语言5

2.3套接字(Socket接口)6

第三章系统分析与系统设计7

3.1系统分析7

3.1.1系统功能介绍7

3.1.2系统流程图7

3.1.2子模块流程图8

3.1.2.1远程开关机8

3.1.2.2文件的传送9

3.1.2.3文件下载11

3.1.2.4远程控制11

3.2系统设计12

3.2.1客户端设计12

3.2.1.1登录窗体设计12

3.2.1.2主界面设计12

3.2.1.3下载文件界面13

3.2.2服务器端设计13

第四章客户端具体实现15

4.1用户登录15

4.1.1实现登录15

4.1.2为其它类提供登录接口16

4.2主界面实现16

4.2.1开关机实现16

4.2.1.1远程唤醒16

4.2.1.2远程关机17

4.2.2远程控制17

4.2.3发送文件19

4.2.3.1传送单个文件19

4.2.3.2对服务器传送文件夹21

4.2.4下载文件22

4.2.4.1下载单个文件22

4.2.4.2下载文件夹23

第五章服务器端具体实现25

5.1远程控制25

5.2传送文件26

5.2.1传送单个文件26

5.2.2传送文件夹26

5.3下载文件27

5.3.1下载单个文件27

5.3.2下载文件夹28

第六章系统测试29

6.1登录测试29

6.2开关机测试29

6.2.1远程关机测试29

6.2.2远程唤醒测试30

6.3远程控制测试30

6.4传送文件测试31

6.4.1传送单个文件31

6.4.2传单文件夹32

6.5下载文件测试32

6.5.1下载单个文件32

6.5.2下载文件夹33

结论35

致谢36

参考文献37

第1章前言

1.1课题背景

C#出现十年来,许多C、C++以及VB程序员转投它的门下,这不仅是因为C#是一个致力于敏捷开发和快速应用程序开发的工具。

在如今计算机硬件快速发展,速度已经不再是瓶颈的情况下,开发效率是人们追求的唯一目标。

而C#就是顺应时代而产生的,它是一种简单、方便和快捷的编程语言。

与此同时,网络的飞速发展给人们带来了极大的方便。

如今人们的日常生活越来越离不开网络,也越来越依赖网络。

在目前,对于网络信息的传输,人们主要使用套接字编程来实现,C#中也可使用套接字编程。

它通过编码的流在网络上传输信息,人们获得流之后又把它解码出来获得需要的信息。

本课题就是在这样的环境之下应运而生的,它实现了信息在网络上的传输,客户端实时的控制服务器。

1.2课题意义

本课题旨在方便人们的学习和工作,它能在客户端能过网络控制服务器,实现信息的实时交换,而服务器又不需要由人控制。

在日常生活中,人们可以使用它在不同的办公地点来实现文件的传输,这可以节约时间在往返工作地点的路上。

同时,如果需要多台电脑进行同一项任务时,可以通过本地控制方便控制。

扩展开来,本系统增加可以增加连接服务器数量,这样就可以对多台电脑实时的监控,这在管理上有一定的作用。

1.3研究内容

为了实现本系统,论文做了以下几方面的研究。

1.TCP/IP网络协议。

本程序中通过TcpListener和TcpClient实现客户端和服务器的连接。

2.魔术包工具(MagicPacket)。

魔术包是AMD公司开发的,它的多播(BroadCast)功能通过发送16MAC地址给“睡着”的电脑,网卡通过报警功能实现计算机的唤醒。

3.屏幕抓取技术。

在实现远程控制的过程中,要实现实时的控制服务器,就需要抓取系统当前屏幕的图片。

4.键盘钩子。

也是在远程控制当中,客户端使用键盘钩子获得本地键盘的按键键值,同时可以对不同的按键进行相应的操作,并且阻止按键传向下一个应用程序。

5.WindowsAPI。

同样在远程控制的过程中,服务器端用API中的“user32.dll”实现鼠标和键盘的模拟操作。

6.套接字(Socket)。

套接字是本系统实现的基础,在程序中,使用Socket编程实现数据在网络中传输。

1.4论文结构

本毕业设计报告内容可以分为六个部分,分别是系统及相关技术介绍(第1、2、3章)、系统的实现(第4、5章)和系统的测试(第六章)。

各章的主要内容安排如下。

第1章:

前言。

介绍了本课题的来源、目的、意义,论文研究的内容和各章的安排。

第2章:

相关技术介绍。

本章介绍了.NetFrameWork、VS平台下的C#语言以及相关网络技术(TCP/IP协议的使用)。

第3章:

系统分析与系统设计。

本章分析了系统各个模块的功能,也给出了系统各个模块的详细设计方案。

对服务器和客户端的设计做了分别介绍。

第4章:

客户端具体实现——WindowsForm。

本系统的客户端是用Windows实体应用程序实现的。

在本章中对客户端的各个模块做了详细的介绍,并列出了核心代码。

第5章:

服务器端具体实现——WindowsService。

本系统的服务器端是用Windows服务应用程序实现的。

服务器端只有一个事件处理模块,本章对它进行了具体讲解,也把它对客户端的每个请求作出的相应响应进行了具体的分析。

第6章:

系统测试。

本章对系统的主要功能进行了相应的测试工作,同时也对比较容易出错的地方进行了测试及说明。

第2章相关技术介绍

本软件的开发采用C/S结构。

在客户端是WindowsForm的应用程序,服务器端是WindowsService的应用程序。

客户端和服务器端都是用VS平台下的C#语言实现的。

相对于其它开发语言而言,C#简单易学、界面操作方便(类似VisualBasic),同时又能实现C++一样强大的功能。

因此选择它作为开发本软件的语言。

开发本软件是选用的较新的VS2008,它的功能相当强大,也很好用。

相对于VS2005而言,VS2008在做网页方面增加了许多新的功能,如ASP.NET3.5、CTRAdd-inFramework、AdditionalEnhancement等。

这些新增功能相对于本程序来说影响并不大,因此不做具体介绍。

2.1.NET框架

.NETFramework是Microsoft为开发应用程序而创建的一个富有革命性的新平台。

上面这句话时.NET的定义,定义给我们两点启示。

第一:

它没有清楚的说明“在Windows操作系统上开发应用程序”。

尽管.NETFramework的Microsoft版本运行在Windows操作系统上,但是.NETFramework也可以运行在其他操作系统上,例如开源的MONO就是一个例子。

MONO项目不仅可以运行在Windows系统上,也可以运行在Linux,FreeBSD,Unix,MacOSX和Solaris上。

第二:

.NETFramework定义并没有限制应用程序的类型。

这是因为本来就没有限制。

.NETFramework可以创建Windows应用程序、Web应用程序、Web服务和其他各种类型的应用程序。

.NETFramework的设计方式保证它可以用于各种语言,例如:

C#、C++、VisualBasic、Jscript,甚至一些旧的语言,如COBOL。

为此,还推出了这些语言的.NET版本。

所有这些语言都可以访问.NETFramework,他们还可以彼此交互。

C#开发人员可以使用VisualBasic程序员编写的代码,反之亦然。

.NETFramework主要是为了实现下面的目标:

1.提供一致的面向对象的编程环境,而无论对象代码是在本地存储和执行还是在本地执行单在Internet上分布、或者是在远程执行。

2.提供将软件部署和版本控制冲突最小化的代码执行环境。

3.提供代码(包括由未知的或不完全受信的第三方创建的代码)安全的执行环境。

第四:

提供可消除脚本环境或解释环境性能的代码执行环境。

第五:

使开发人员的经验在面对类型大不相同的应用程序(如基于Windows的应用程序和基于Web的应用程序)时保持一致。

第六:

按照工业标准生成所有通信,以确保基于.NETFramework的代码可与任何其他代码集成。

2.2C#编程语言

C#是用于创建运行在.NET公共语言运行库上应用程序的语言之一,它从C语言和C++语言演化而来,是Microsoft专门为使用.NET平台而创建的,并且考虑了其他语言的许多优点,例如VisualBasic的易用性。

C#本身是面向对象的语言,C#还进一步提供了对面向组件(ComponentOriented)编程的支持。

现代软件设计日益依赖于自包含和自描述功能包形式的软件组件。

这种组件的关键在于,它们通过属性(Property)、方法(Method)和事件(Event)来提供编程模型并且还提供了关于组件的声明信息的属性(Attribute),并且还编入了自己的文档。

C#提供的语言构造直接支持这些概念,这使得C#语言自然而然成为创建和使用软件组件的首选。

C#具有几个非常优秀的用于构造健壮和持久应用程序的特性,如下所示:

1.垃圾回收将自动回收不再使用的对象所占用的内存。

2.异常处理提供了结构化和可扩展的错误检测和恢复方法。

3.类型安全的语言设计则避免了读取未初始化的变量、数组索引超出边界或执行未经检查的类型强制转换等情形。

此外,C#还提供具统一的类型系统,所有C#类型(包括int和string之类的基础数据类型)都继承自一个唯一的基类型:

Object。

因此,所有类型都共享一组通用的操作,并且任何类型的值都能以一致的方式进行存储、传递和操作。

另外,C#同时支持用户定义的引用类型和值类型,既允许对象的动态分析,也允许轻量的内联存储。

为了确保C#程序和库能够以兼容的方式逐步演进,C#的设计充分强调了版本控制。

许多语言都不太重视这一点,导致采用那些语言编写的程序常常因为其所信赖的库的更新而无法正常工作。

C#的设计在某些方面直接考虑到了版本控制的需要,其中包括单独使用的virtual和override修改、方法重载决定规则以及对显式接口成员声明的支持。

2.3套接字(Socket接口)

套接字(Socket)用于描述IP地址和端口,是一个通信链的句柄。

应用程序通常通过套接字向网络发出请求或者应答网络请求。

Socket接口是访问Internet使用得最广泛的方法。

如果你有一台刚配好TCP/IP协议的主机,其IP地址是202.120.127.201,此时在另一台主机或同一台主机上执行ftp202.120.127.201,显然无法建立连接。

因"202.120.127.201"这台主机没有运行FTP服务软件。

同样,在另一台或同一台主机上运行浏览软件如Netscape,输入"http:

//202.120.127.201",也无法建立连接。

现在,如果在这台主机上运行一个FTP服务软件(该软件将打开一个Socket,并将其绑定到21端口),再在这台主机上运行一个Web服务软件(该软件将打开另一个Socket,并将其绑定到80端口)。

这样,在另一台主机或同一台主机上执行ftp202.120.127.201,FTP客户软件将通过21端口来呼叫主机上由FTP服务软件提供的Socket,与其建立连接并对话。

而在netscape中输入"http:

//202.120.127.201"时,将通过80端口来呼叫主机上由Web服务软件提供的Socket,与其建立连接并对话。

第3章系统分析与系统设计

3.1系统分析

3.1.1系统功能介绍

本系统旨在完成两台主机之间的通信。

客户端能够从服务器上下载文件、上传文件、控制服务器的开关机和对服务器的远程实时控制。

打开客户端应用程序之后,用户通过服务器的IP和开放监听的端口号进行登录验证,登录成功,表示能与服务器取得连接,也就能够实现两台主机之间的通信。

客户端能够下载的文件主要是存放在服务器默认位置的文件,当需要下载时,客户端会列出服务器中所设置的默认位置的文件列表供用户选择。

用户也可以下载其它位置的文件,但是需要自己输入文件所在路径和文件名。

用户也可以上传文件,服务器中接收到文件后,会把上传的文件保存在所设置的默认位置。

客户端远程控制服务器时,本地电脑的屏幕完成是服务器的屏幕,对键盘鼠标的操作也完成是对远程服务器起作用。

由于存在退出远程控制的服务器,因此设定了ESC键作为退出远程控制服务的按键。

用户也可以控制服务器的开关机。

开机时,用户通过发送服务器的MAC地址,便可实现服务器的唤醒。

若要关机,则只需发送关机命令,服务器端根据命令自动完成关机操作。

3.1.2系统流程图

 

 

图3-1系统流程图

3.1.2子模块流程图

本系统旨在实现两台电脑之间的通信,这包括远程开关机的实现、文件传送与接收以及远程屏幕实时操作。

3.1.2.1远程开关机

对于远程唤醒,是通过电脑的IP地址和MAC地址实现的,每台电脑都有唯一的MAC地址,它是在生产电脑时确定的。

它的流程图如图3-2所示。

 

图3-2远程开机流程图

远程关机,也是用到IP地址,加上被关闭电脑的用户名和密码来实现。

3.1.2.2文件的传送

对于单个文件,我们从本地选择要传送的文件,使用TCP协议与远程计算机实现网络互连。

首先向服务器传送一个要发送文件的指令,并且一起把文件名字发送过去。

服务器接收到信息后,在默认的位置下根据传送过去的名字创建一个文件。

然后从本地读出要传送文件的流,考虑到文件可能会比较大,不能一次性传送给服务器,因此分批传送。

文件传送的流程图如图3-3所示。

对于文件夹,是把它中的文件一个一个传送过去,因此传送文件时和上面的一样。

传送的时候会有子文件夹,因此在传送时要考虑相对路径的问题。

传到服务器时也要根据相对位置创建相应的文件夹。

传送文件夹的流程图如图3-4所示。

 

图3-3传送子文件流程图

 

图3-4传送文件夹流程图

3.1.2.3文件下载

在一个新的Form窗体中实现,先显示默认位置的文件名称列表,如果需要下载该列表中的文件,直接选择点击下载即可。

如果需要下载其它位置的文件,则需要输入该文件的位置,才能完成下载。

下载文件夹和文件是完全一样的,而且也是用的同一个Form窗体,只是在初始化的时候稍微改变一下。

也要在下载按钮的代码中做一下检测,到底是要下载文件还是文件夹,这只需要一个BOOL变量。

下载文件夹和上传文件夹的算法是一样的,因此它们的流程图也一样。

这是不再重复给出。

3.1.2.4远程控制

主要是能完成类似QQ远程协助的功能。

在客户端能够通过键盘鼠标模拟远程电脑敲键盘鼠标的功能,当然也需要把远程电脑的实时界面传递到客户端上。

这主要就存在流量过大的问题,在本程序中是用限时的方法传送,一秒钟传送一张图片过来。

 

图3-5远程控制流程图

3.2系统设计

3.2.1客户端设计

本系统的客户端是WindowsForm应用程序,其中由三个窗体组成,分别是登录窗体、主界面和下载文件界面。

3.2.1.1登录窗体设计

登录窗体,它上面有两个Label、两个TextBox以及两个Button。

Label作为TextBox的说明,两个TextBox分别是服务器的IP号和端口号。

Button则是一个登录、一个重置。

其中登录键是测试能否连接到服务器的,能够连接就登录,不能连接就会提示用户输入正确的IP和端口号。

重置则是让TextBox1,也就是输入IP地址的文本框获得焦点。

如果能够连接到服务器就登录系统,然后断开连接,这也是为了节约资源,也因为在其它操作时都有自己的连接,每个模块使用完了之后也会释放连接。

3.2.1.2主界面设计

主界面上面就只有一个MenuItem菜单栏,上面的子项目有开关机、远程控制、传送文件和下载文件。

开关机包括唤醒和关机;远程控制就一个项目;传送文件包括传送单个文件和传送文件夹;下载文件也包括下载文件和下载文件夹。

点击相应的选项会弹出相应的操作界面。

远程屏幕控制也是在主界面中完成的。

当进入远程控制时,屏幕会切换的全屏状态,以方便观看与使用。

在客户端进行相应的操作就如同在服务器端电脑上进行相应的操作。

例如打开一个文件夹,运行一个程序等,也就是说能够在本地模拟远程电脑的键盘鼠标操作。

但是由于网络传输速度的限制,因此不可能做到太流畅,操作起来也相对费劲。

我也曾尝试过用图片相减的方法来减小传送的图片,不过这会有问题,就是相减算法会很大。

我做过测试,在我的电脑上要完成1024×768大小图片的相关操作,大概需要5秒钟。

这样算下来就相当于要5秒钟才能传送

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1