毕业论文-网络硬盘客户端的设计与实现_第1页
毕业论文-网络硬盘客户端的设计与实现_第2页
毕业论文-网络硬盘客户端的设计与实现_第3页
毕业论文-网络硬盘客户端的设计与实现_第4页
毕业论文-网络硬盘客户端的设计与实现_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大连东软信息学院本科毕业设计(论文)论文题目论文题目:网络硬盘客户端的设计与实现系所:电子工程系专业:电子信息工程(嵌入式系统工程方向)学生姓名:学生学号:指导教师:导师职称:副教授完成日期:2014年4月28日大连东软信息学院DalianNeusoftUniversityofInformation大连东软信息学院毕业设计(论文)摘要IV网络硬盘客户端的设计与实现摘要随着计算机技术的快速发展,网络技术愈来愈多的应用在日常办公之中。比起常规的文件处理方式,通过使用计算机网络技术来进行日常文件处理,会有以下几个优势:采用计算机来进行文件管理,有利于信息的共享和集成,可以有效的减少管理员的工作量,使文件的管理更加的科学和规范化,而且更加的安全。如今,人们大多时候使用U盘、移动硬盘等工具来进行保存传送文件,但如果硬件丢失就会有无法挽回的损失。因此,设计一个安全而有效的局域网网盘文件管理系统是非常具有必要的。本系统在对网盘系统的需求进行分析的基础上,使用C/S网络模式,采用FTP协议、CSocket网络编程等网络开发技术实现了局域网的文件共享网盘系统,不仅实现了局域网的网盘文件共享,可以轻松上传、下载用户文件,通过互联网的认证模式进行登录,可以进行用户管理和限制用户访问的文件和目录;而且实现了用户留言与评价模块,在此模块中可以进行加密留言和对话交流,并且进行点对点文件传输,实现了完整的局域网文件共享网盘系统。关键词:网盘,FTP协议,套接字编程,加密技术大连东软信息学院毕业设计(论文)AbstractDesignandImplementationoftheNetworkDiskforClientAbstractWiththerapiddevelopmentofcomputertechnology,networktechnologyhasbeenusedinmoreandmoredailyofficeapplications.Useofcomputerandnetworktechnologiesfordailyfilemanagementandsharinghasthefollowingadvantages:theuseofcomputersforfilemanagementisconduciveforsharingandintegrationofinformation,whichcaneffectivelyreducetheworkloadofadministrators.Itcanalsomakethefilemanagementmorescientificandstandardized,andmoresecure.Therefore,thedesignofasafeandeffectivelocalareanetworkdiskfilemanagementsystemisverynecessary.Thesystemisbasedontheanalysisofnetworkdisksystem.WiththeuseofC/Snetworkmodel,theFTPprotocol,CSocketnetworkprogrammingandotherwebdevelopmenttechnology,thesystemisdesignedtoachieveLANfilesharingnetworkdisk.NotonlyachieveaLANfilesharingnetworkdisk,userscaneasilyupload,downloadtheirfilesviatheInternetloginauthenticationmode.Theycanmanageandrestrictuseraccesstothefileboxdirectory,implementsusercommentsandevaluationmodule.Userscanalosencryptamessageanddialogue,anddoapointtopointfiletransfertocompletethevirtualLANnetworkdisk.Keywords:NetworkDisk,FtpProtocol,CSocketPorgramming,Encryption大连东软信息学院毕业设计(论文)目录目录TOC\o"1-3"\u摘要 IAbstract II第1章绪论 11.1课题研究背景与意义 11.2课题研究内容与方法 21.3课题研究现状 2第2章关键技术介绍 32.1FTP文件传输技术 32.2CSocket网络编程技术 32.3MFC界面编程 42.4DES加密 4第3章系统需求分析 63.1系统设计目标 63.2系统功能需求 63.3系统非功能需求 63.4系统开发环境 73.5系统可行性分析 73.5.1技术可行性 73.5.2经济可行性 7第4章系统设计 84.1系统设计指导原则 84.1.1关键技术 84.1.2先进性策略 84.1.3复用策略 84.1.4设计约束 84.2体系结构设计 84.3软件设计 94.3.1UI界面设计 104.3.2功能模块设计 12第5章系统实现 155.1环境配置 155.2功能模块实现 155.2.1系统界面实现 155.2.2客户端FTP登陆功能实现 165.2.3客户端文件传输功能实现 185.2.4客户端聊天功能实现 195.2.5客户端加密功能实现 205.2.6服务器端软件功能实现 205.3本章小结 21第6章系统测试 226.1测试概述 226.2测试用例 226.2.1测试用例一:登陆测试 226.2.2测试用例二:文件上传与下载 236.2.3测试用例三:聊天功能与信息留言 25第7章结论 27参考文献 28致谢 30大连东软信息学院毕业设计(论文)-第1章绪论1.1课题研究背景与意义当今社会信息技术处于高速发展的阶段,整个互联网的数据和信息呈现爆炸式的增长模式,信息数据的来源也变得各式各样。随着互联网的日益普及,信息的传播与互动已经成为互联网交互的最重要的模式。基于信息共享技术,如何快速而准确的获取到信息已经成为人们日常互联网应用中的一个重要问题。新一代的比如谷歌、百度等互联网服务商,在信息共享和检索服务中起到了领头的作用。因此,文件共享和检索服务的研究已经成为当今互联网技术研究的前沿课题。本课题的主要目的就是研究基于网络文件传输协议设计与完成局域网信息文件共享管理的网盘功能,开发一个功能较为完善的基于C/S的网盘系统。随着计算机技术和网络技术的发展,现代通讯工具的普及,计算机在现代社会生活中起到了重要的作用。随着计算机在日常生活中的应用的增多,大量数据和文档从互联网的各个源头进入到网络当中,因此随着人们实际需求的增多,逐渐出现了基于计算机的网络文件共享技术,和部分基于该应用的文件管理和检索功能。随着网络技术的普及,每个国家都建立了各自的网络,并且逐渐出现了网上办公和网上交流的工作。文件共享是建立在用户文件存储基础上的,应该具有较好的用户界面,方便用户与其他用户之间共享文件,并且提供上传、下载和删除文件等功能。人们可以不受空间与地域的限制,进行文件的上传与下载。而本系统是基于数据共享和信息交互的局域网,建立小面积的网络磁盘系统模型,以供局域网内用户办公和项目开发的需求。现有的办公网络内,存在着普遍的局域网连接,每天的办公工作、学习和项目开发需要大量的文件传输和系统公告等,虽然现有的U盘、qq群共享和文件传输工具已经广泛的应用,但是这些传输方式都有着一定的缺陷,例如U盘功能有限并且存在安全性的问题,而qq群共享存在着限制并且传输速度有限,而现有的局域网传输系统例如飞鸽传输只支持点对点文件传输,这给部门办公室的工作人员的数据传输和内部数据交互工作带来了极大的不方便,为了使部门内部信息共享和提供更快的数据传输交互平台,因此设计一个基于局域网的文件共享网盘平台是非常有必要的。本系统是基于局域网的文件共享与传输的网盘系统模型,主要解决办公室用户之间的文件传输、共享与同步的需求。系统可以在局域网内进行高速数据传输,达到5M/s以上传输速度,并且服务器端可以进行用户组与数据管理,设置用户间文件共享权限和访问权限,方便项目内部成员数据共享,而对不同项目组成员的数据进行隔离,达到安全的数据存储与共享服务,具有良好的操作界面,用户可以很方便的进入自己所属空间,进行文件的下载上传与其他操作。该系统的出现一方面可以解决现有公网网盘带宽要求高、文件隐私性不高和空间容量较小的问题,另一方面可以解决例如U盘等物理存储介质易中病毒、使用不方便的问题,具有较高的实际意义。1.2课题研究内容与方法本系统采用FTP文件传输模式进行文件上传与下载,利用CSocket套接字编程实现用户与管理员留言交流和点对点文件传输,采用MFC编写了简洁易用的用户界面,利用DES加密技术实现了文件传输和留言的加密,系统功能较为完善。1.3课题研究现状随着互联网的发展,国内外都出现了许多网盘工具,在互联网上上提供了全面的、操作方便的网盘系统,可以轻松的实现文件下载与上传、具有独特的共享功能,与其他同类的文件传输模式相比,网盘具有共享容易、用户分组管理共享、相对较为稳定安全和预览较为直观的优点。满足了人们群众的网络文件传输的基本需求,也受到广大用户的欢迎。但是磁盘在互联网上存在对网络带宽较高的要求,上传空间有限的缺点,现有的国内外应用广泛的网络硬盘主要包括:(1)联想网盘:2008年7月1日重大改版之后,最大免费空间5G,支持批量多文件传输,多级目录和断点续传,有客户端和FLASH两种途径上传,可在浏览器内拖拽文件,支持各种音频文件在线预览。但所有内容不能完全公开,仅能和“我的圈子”或“二人世界”中的好友分享。(2)纳米盘:新推出的免费网盘,单个文件限制200M以内,支持图片外链,上传下载速度都不错(电信网通线路可选)。可以下载纳米机器人来上传文件,更方便,而且支持4G超大文件上传。(3)Live微软旗下L推出免费网盘,500M空间,可以外链,单个文件限制50M之内,目前不对中文用户开放。(4)RapidShareAlexa排名18位的免费网络硬盘服务,有110G带宽,无需注册直接上传下载,单个文件100M。现在国内外的网盘形形色色,用户选择也相对较多。大连东软信息学院毕业设计(论文)第2章关键技术介绍2.1FTP文件传输技术FTP(FileTransferProtocol)是应用于网络文件传输的协议,也是最早应用于网络传输的应用层协议之一,这个协议可以用在相同操作平台的电脑之间进行文件传输,也可以用在跨平台的主机之间传输,可以进行二进制和其他格式的文件的传输。FTP协议有着以下几个特点:(1)FTP文件传输模式只提供了文件传输的基本服务,它是采用TCP作为传输协议,具有较高的可靠性。(2)FTP文件传输采用通用的协议编制,可以在不同的主机、系统和平台上进行文件传输,具有较好的通用性。(3)FTP文件传输基于C/S模式。一般的FTP文件传输过程是客户端开始请求服务器数据,主动连接到服务器的控制端口上,然后服务器与客户端建立起数据连接。当客户端开始请求连接时,采用TCP协议连接服务器的常用控制端口,当服务器接收到之后会跟客户端提供的数据端口进行连接,从而建立起基于两个端口号的数据和控制连接,由于FTP传输采用了两个端口号分别进行数据传输与控制,可以较为清楚的区分控制和数据。FTP应用在本文设计的网盘系统有着以下几个优势:(1)对平台无要求,可以跨平台进行文件共享与传输。(2)虽然为C/S系统,可以采用短连接的模式可以进行多台同步传输。(3)基于TCP连接,系统传输相对较为稳定。(4)控制命令中涵盖了用户权限、目录切换等管理功能。2.2CSocket网络编程技术微软的MFC将复杂的WinSockAPI封装到了面向对象的接口类指针,目的是为了在编写Web应用和基于套接字的网络编程时提供便利和较高的灵活性。而MFC的CSocket类是由CAsyncSocket继承而来,一方面提供了CAsyncSocket的API接口,并且提供了例如阻塞、多任务和Unicode字符转码等功能,在CSocket基础上派生的CSocketFile类可以实现点对点的文件传输等功能。CSocket类使开发与进行数据操作管理更加的方便,一般要进行低层次的套接字编程应用,采用CAsyncSock编程就很容易实现,而如果需要进行套接字的高级编程,采用CSocket类可以达到更高的效率。2.3MFC界面编程本系统采用Microsoft公司的VisualC++6.0,采用面向对象的程序设计模式。MFC作为开发语言具有一系列的优点,例如可用资源多,各种控件和已有的代码,各种参考资料。只要会C++就能上手,如果对MFC的基础类不满意,还可以自己继承添加新的成员。使用起来非常的灵活。执行效率很高,并且兼容性非常好,vc6写出来的程序在win764位下跑的都很流畅。比较适合做大型工程,但是也存在一系列的缺点,比如只能在windows环境下使用,不能像其他的一些C/C++类库(例如qt)等一样跨平台,但是一些例如wine的补充手段可以达到跨平台的效果。选用MFC作为开发环境的另外一个原因就是MFC提供网络编程的套接字组件和接口类,在进行网络信息交互与传输的用途中可以进行快速开发,并且运行速度快,在对实时性要求较高的网络文件共享和网盘系统中有着较大的优势。2.4DES加密数据加密算法是一种对称加密算法,是现有应用最广泛的密钥系统,比如在银行等金融系统的安全性设计中。最初的DAE系统是嵌入到硬件系统芯片中的,专利权属于IBM,但是在1983年该专利权到期之后,在特定条件和使用情况下可以免除专利使用费,因此在ATM机等应用中大规模的采用了DEA加密技术。DES加密一般采用五十六位的密钥系统,在此之外还附带有一个八位的奇偶校验验证码,产生了一个六十四位的密钥分组。使用Feistel技术将这六十四位密钥的一半分组进行循环,得到输出后与另一半密钥进行“异或”的运算操作,如此循环直到结束;DES使用16轮循环,使用异或,置换,代换,移位操作四种基本运算,具体流程如图2.1所示。图2.1DES加密算法流程一般攻击DES采用的算法是穷举法,也就是一直尝试密钥直到可以解密为止,一般采用五十六位密钥的DES加密密钥有二的五十六次方个,随着现有计算机技术的快速发展,DES的算法的破解成为了可能,但是一般民用情况下还是认为该加密算法的性能是足够的。第3章系统需求分析3.1系统设计目标本系统主要实现局域网内用户之间文件共享与管理,提供公司或者部门内部的业务平台。主要实现如下目标:(1)实现网盘系统中的客户端用户文件共享和管理模块,并且配合服务器端进行用户与目录权限管理等。(2)实现基本的网盘系统中的文件上传与下载功能,实现局域网文件共享。(3)在网盘的基本功能完成的前提下,利用网络编程技术实现用户留言与实时交互信息功能。(4)为用户与管理员之间的留言与交流进行加密工作,并且进行敏感词汇过滤。(5)用户与管理员间可以进行点对点文件传输,实现隐私文件的私有传输通道。3.2系统功能需求网盘系统主要可以分为网盘客户端与服务器的管理端。其中,根据网盘客户端的特点,可以将其分为客户登陆、文件上传与下载、文件管理和留言等部分,其中各个部分及其包括的具体功能的模块图如表3.1示:表3.1局域网网盘系统客户端功能模块功能编号功能名称功能描述优先级1登录接口供用户登录高2文件上传接口进行文件上传高3文件下载接口进行文件下载高4留言接口进行用户留言较高5过滤加密接口不良信息,用户留言加密次要而服务器端的主要模块主要包括用户登陆接收、用户管理、文件管理和用户留言管理等部分,其中各个部分及其包括的具体功能模块如表3.2所示:表3.2局域网网盘系统服务器端功能模块功能编号功能名称功能描述优先级1用户管理进行用户管理高2文件删除管理接口进行文件管理高3文件下载接口进行文件下载高4留言接口阅读留言较高5过滤加密接口不良信息,用户留言加密次要3.3系统非功能需求(1)系统可以满足局域网内网盘系统的一般性需求,适用于网内的所有windows用户,通过DES和winsocket加密技术保障系统的安全性。(2)系统满足易用性的要求,提供了较为简洁的人机UI界面,文件上传下载、留言交流与加密等都易于使用。(3)程序系统资源占用小,程序中各个模块的算法复杂度与时间复杂度都满足日常使用要求。(4)程序采用了分层模式编写,整个工程采用模块分离的方式编写,程序的数据传输、界面、消息响应和数据处理都进行了数据层和接口层的隔离,系统的可维护性较好,并且比较稳定。3.4系统开发环境硬件环境:酷睿双核2G处理器+2G内存+250G硬盘+百兆局域网。软件环境:OS:Windows7IDE:VisualStudio2010,MFC,VIM3.5系统可行性分析3.5.1技术可行性系统采用CSocket网络编程作为底层接口开发架构,采用MFC作为界面编写语言,文件传输采用FTP协议。对于多用户连接,采用短连接、多线程的方式实现,系统简单清楚,易于维护。3.5.2经济可行性系统不需要额外的硬件购置,软件开发成本相对较低,人力成本约为三十个人日,开发人员少,投资少,但是技术含量较高,而且可以极大的提高用户局域网内文件共享、版本管理和工作的效率,可以达到较高的无形收益,因此本系统在经济上是较为可行的。第4章系统设计4.1系统设计指导原则4.1.1关键技术本系统基于C++语言编写,采用了MFC中的消息响应和CSocket网络编程技术以及先进的加密技术实现,设计了应用于局域网的文件共享平台网盘系统。(1)MFC界面编写采用了MFC的消息响应机制编写了程序的主页面与其中的消息响应,系统实时性较高。(2)FTP文件传输采用FTP文件传输协议进行文件的收发、下载和上传管理等操作,利用了FTP跨平台的特性,为不同平台与操作系统用户提供了统一的接口平台。(3)DES消息加密采用DES加密手段,对用户与管理员的交流与沟通进行了加密保障。4.1.2先进性策略系统采用现有的硬件平台即可实施,采用电脑、网线或者无线wifi等网络模式进行文件传输,存储到服务器的磁盘之中。系统进行共享、管理和交互所需要的前端设备少,系统架构简单,仅需要一套软件即可实施。4.1.3复用策略系统所需要的设备相对都比较简单,由于系统所需要的运行资源很少,因此服务器端只需要一个相对较为稳定的磁盘阵列即可,省去了大型服务器的维护费用。并且系统传输采用现有网络通道即可,无需重复架设。系统安装简单,软件提供了较为简便的GUI接口,使用较为人性化。而在维护方面,系统的外围接线不需要更改,系统采用分层分模块设计和系统调用策略,模块复用性较好,软件可靠性相对较高。4.1.4设计约束本系统在设计上符合软件开发的基本要求,采用面向对象的设计原则进行开发,系统的稳定性较好,并且易于维护。4.2体系结构设计 本系统的体系架构采用构件加连接件的形式进行实现,采用面向对象的分析与设计完成,系统的总体架构如图4.1所示。图4.1系统体系架构系统包括网盘客户端、网盘服务器、文件上传下载与共享、用户留言与交互、系统敏感词过滤和加密等功能模块,采用了分模块分层结构设计。4.3软件设计局域网网盘系统服务器端主要为网内用户提供服务器磁盘存储阵列空间,在这个存储空间内使用户可以如同在本地操作文件系统一般添加、下载或者删除文件,并且可以对用户存储空间进行管理,阅读用户的留言反馈进行改进和处理。而局域网网盘系统的客户端主要为网内用户的文件操作和存储空间管理提供人机交互界面和实施通道,并且在通道建立的基础上,可以进行留言等操作进行网盘系统使用体验反馈和意见提交。因此,本系统设计的网盘系统应该具备以下功能:(1)文件管理功能,文件的上传下载与空间管理(2)用户留言与反馈功能(3)系统不良信息过滤功能(4)系统留言加密的功能以上功能是本网盘系统具备的基本功能,在此基础上用户就可以自由的进行网络文件分享和传输,并且可以进行意见和心得的反馈等行为。4.3.1UI界面设计系统的界面提供给用户进行登陆与文件管理的功能,首先要提供给用户登陆的功能,出于系统的可扩展性考虑,本系统的客户端部分使用的服务器地址和端口等参数都可供用户输入然后进行链接,这样的设计理念可以让用户采用本系统的客户端链接其他的基于FTP文件传输协议的服务器,具有良好的可兼容性。在进行文件传输和共享过程中,如果用户对系统存在有疑问或者有特殊要求要询问管理员,就要与管理员进行交流与沟通,现有的方式一般是采用聊天软件或者邮件进行咨询,但是一般管理员并不会公布自己的远程协助方式,而邮件模式存在着时效性的问题,所以局域网网盘系统软件应该具备网络留言和部分私有功能,才能满足网内客户的需求。因此系统设计了远程留言模块来构建客户与系统管理员之间的沟通介质,服务器端与客户端采用典型的C/S架构,界面具有统一性的特点。 FTP网盘服务器的登陆除了系统服务器地址和端口之外,还需要输入用户的登陆ID和密码等进行认证,这样可以保证每个客户都只能登陆到服务器管理员指定的磁盘空间中进行文件的传输管理,这个空间是只能运行该客户进行访问与修改的,这与本地磁盘的控制是一致的。系统的界面如图4.2所示。图4.2系统客户端部分主界面系统的界面提供了以下几个组件:(1)用户注册与网盘登陆界面;(2)登陆网盘客户端所需要的地址、端口、用户名和密码输入框;(3)系统日志显示框;(4)本地文件限制的列表;(5)网盘端用户空间内用户文件列表;(6)用户本次运行程序的操作步骤列表。而服务端采用FileZilla公司的FtpServer进行架设,服务器端界面相对比较简洁,主界面显示连接的用户和状态信息,并且显示服务器状态提供管理员进行管理与维护,下方框体显示正在传输文件的用户id与信息等信息,便于管理员实时监控用户行为进行管理,网盘服务器端的UI基本界面如图4.3所示。图4.3网盘服务器端UI设计服务器端提供了用户管理和目录管理等功能,在有新用户加入或者有用户信息更改时,管理员可以对用户信息进行变更,以完成信息的更新和使用。同时对用户目录权限进行了控制,可以限制用户的访问空间,可以使用户在其授权空间范围内自由的上传、下载和更改文件,而无法进行未进行授权的空间。用户管理界面如图4.4所示。图4.4网盘管理端用户管理界面4.3.2功能模块设计根据前面对系统应用功能的分析,本系统可以划分为两个大的模块:系统的网盘文件传输模块和用户交流沟通模块。而网盘文件传输模块的功能可以细分为系统登陆、文件显示、文件上传与下载、日志管理和系统调用模块。客户端功能模块结构图如图4.5所示。图4.5客户端模块结构设计(1)系统登陆模块系统的登陆过程就是用户端软件与服务器端管理软件的连接过程,主要分为网络连接、用户认证和信息获取这三个步骤。本系统是用于文件共享与管理的网盘应用软件,用户必须以记录在服务器端的用户名与密码进行系统登陆,系统服务器端根据用户的级别与权限等进行目录分配,并且进入到用户具有权限的用户空间,从而实现网盘共享功能。本系统不支持匿名登陆。(2)文件操作模块文件操作包括主要包括文件的上传、下载、共享与显示等功能。其中文件的上传与下载必须要满足快速、稳定和兼容性高的需求,在局域网内要具有较好的实时性。用户文件上传后服务器端应该实时更新,可以让其他用户立刻进行访问。用户下载文件的功能应该具有较高的可靠性,在网络状况稳定的情况下应当不会无理由中断,系统应该支持多线程、多用户的文件上传与下载。用户共享文件应该可以正确的被其他具有权限的客户访问与进行获取,对不同级别的客户应该区别处理,权限较高的客户可以访问到较多的和安全级别较高的文件,而权限不够的用户也可以访问到权限内的文件系统。文件信息显示与日志模块应该可以实时显示用户的操作与用户操作的结果,包括:用户本地文件显示;用户远程文件显示;用户上传与下载清单显示;用户登陆与服务器连接状态显示等。文件操作模块是本系统的核心模块,承担了网盘系统中最重要的文件存储、共享与获取的功能。(3)用户留言模块不同权限的用户,如果对系统有任何的意见或者对系统管理有意见和建议,都可以通过系统的留言形式发表私人或者公开留言,实现双向的沟通与交流,如用户可以对其所具有权限升级请求,或者对系统存在任何的疑虑,甚至是对其他用户的投诉,都可以通过本模块进行实现。凡是合法用户,都可以使用留言模块进行系统留言或者聊天,了解系统运行状态与进行信息反馈,留言可以选择通过明码或者加密的方式进行传输,保证用户发言的隐私性。除此之外用户还可以使用留言模块中的文件传输功能向管理员发送私人文件,以满足不同用户的不同需求。服务器端功能模块结构图如图4.6所示。图4.6服务器模块结构设计服务器端主要负责文件的存储与用户管理等功能,并且提供管理员阅读与回复用户留言的接口模块。网盘服务器端作为系统的管理部分,负责整个系统的文件存储、用户管理和系统资源的管理,服务端的核心模块是用户权限的管理和文件管理功能,针对不同权限用户分配不同的用户空间,并且限制不同权限的用户的访问权限,管理用户的id与密码,处理多个用户多线程下载时的同步与协调。而客户端的留言浏览与反馈信息查看的功能类似于客户端,实现了同样的功能,包括信息浏览、发送、文件点对点传输等功能,为系统的信息反馈与维护提供了便利。大连东软信息学院毕业设计(论文)第5章系统实现5.1环境配置系统环境配置主要包括操作系统的安装(windows7)、开发环境搭建(VisualStudio2010与FileZillaServer)等。5.2功能模块实现5.2.1系统界面实现整个系统界面包括客户端文件传输与日志界面、客户端留言界面和服务器端信息浏览界面三个部分组成,系统界面采用MFC编写。网盘客户端与服务器端的界面涵盖了系统的主要模块功能,包括文件的上传、下载等基本功能和留言等扩展功能的实现。对于客户端的文件共享与传输界面,采用win32单文档架构进行实现,提供了快速连接、网盘地址、用户、密码和端口输入以及文件上传与下载等消息响应,采用MFCClassWizard编写了整个系统的主要消息响应,主要的消息响应:文件下载消息响应:ON_COMMAND(ID_FILEDOWN,OnFiledown)文件下载后列表刷新响应:ON_UPDATE_COMMAND_UI(ID_FILEDOWN,OnUpdateFiledown)插入远程文件列表消息响应:ON_MESSAGE(WM_SETFILE,OnInsertFuwuqiFile)重画远程端响应:ON_MESSAGE(WM_SETREDRAWFLAG,OnSetFuwuqiRedrawFlag)刷新远程端文件信息等响应:ON_MESSAGE(WM_UPDATEFILELIST,OnUpdateFileList)消息响应涵盖了界面变形、文件双击上传、右键更改、上传与下载文件和更新文件列表等主要网盘传输与控制功能。系统采用MFC的文本框框控件获得用户输入的用户名、密码、连接服务器端口等信息,通过TextDialog的输入获取与远程网盘的连接信息,然后在客户点击连接后开辟连接线程然后进行远程连接: 获取连接端口:linkBar.SetDlgItemText(IDC_PORT,"21"); 获取服务器ip地址:linkBar.SetDlgItemText(IDC_FUWUQI,"inputservername"); 获取网盘用户名:linkBar.SetDlgItemText(IDC_NAME,"user"); 获取网盘登陆密码:linkBar.SetDlgItemText(IDC_PASS,"password");获取到服务器的信息后标记当前状态为未登录,然后等待客户进行连接后,通过FTP登陆协议进行服务器的登入过程。而对于客户端与服务器的用户与管理交互模块的界面,由于具有相似性,以客户端处界面为例介绍交互模块的系统实现。5.2.2客户端FTP登陆功能实现网盘客户端采用FTP登陆方式进行服务器登陆,在通过界面获取到服务器的地址、端口等信息的基础上,在用户点击登陆后,进行连接服务器的尝试,采用tcp进行连接,当连接完成后,获取网盘服务器用户空间的文件系统,并且进行显示,完成服务器连接的主要流程如图5-1:图5.1用户登陆模块hInetSession=InternetOpen("FTP",INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);打开网络连接后,采用界面获取的端口信息等进行登陆。 hFtpConn=InternetConnect(hInetSession,ftpServer,ftpPort, ftpUser,ftpPass,INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,0);如果没有连接上则输出错误信息到网络的log信息列表中, if(!hFtpConn) { infoFtp=ftpServer; infoFtp+="抱歉,您要连接的服务器未连接上,请确认后重试!!!"; infoview->PostMessage(WM_CONNECTINFO,0,(LPARAM)(LPCTSTR)infoFtp); InternetCloseHandle(hInetSession); ::Sleep(10); return0L; }如果连接成功则返回信息,等待用户下一步操作, infoview->PostMessage(WM_CONNECTINFO,0,(LPARAM)(LPCTSTR)infoFtp); CStringtemp;连接完成后,通过递归查找服务器上用户空间内的文件进行目录遍历并且获得目录与文件列表,从而对用户在网盘空间内的文件信息进行显示,方便用户进行操作:图5.2服务器模块结构设计 do{ file=fd.cFileName; strcpy(pfuwuqifile->FileName,file); fileTime=fd.ftLastWriteTime; CTimetime=CTime(fileTime); CStringstr=time.Format("%X--%x"); strcpy(pfuwuqifile->FileDate,str); if(fd.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY) { strcpy(pfuwuqifile->FileSize,""); pfuwuqifile->nType=DIRECTORYICON; } else { DWORDi=fd.nFileSizeLow; str.Format("%ldBytes",i); strcpy(pfuwuqifile->FileSize,str); pfuwuqifile->nType=FILEICON; } }while(InternetFindNextFile(hFind,&fd));采用FTP文件获取命令接口进行了文件信息获取,显示给用户进行操作。至此就完成了客户端到服务器的登陆过程。5.2.3客户端文件传输功能实现客户端与服务器之间的传输采用短连接、多线程模式进行传输,从而可以实现多用户的连接和多文件并发下载的功能要求,当不进行文件传输与其他交互时,客户端与服务器连接断开,方便其他客户与服务器进行连接,而当要进行文件传输等交互时,客户端与服务器重新开始进行连接:在进行完成登录后,系统进入用户要上传的文件目录,然后进行文件的上传。首先在客户端的本地文件显示处进行本地文件目录与列表显示,然后通过用户的双击操作将客户所需要上传到网盘空间的文件进行FTP上传。if(FtpPutFile(hFtpConn,DirName,DirName,FTP_TRANSFER_TYPE_BINARY| INTERNET_FLAG_NO_CACHE_WRITE,0)) { infoview->PostMessage(WM_CONNECTINFO,0,(LPARAM)(LPCTSTR)ftpupfile); strcpy(pdonefile[i].FileStatus,"上传完毕"); }上传的接口采用ftp上传接口实现,当出现异常时跳出错误提示并且显示错误log日志供用户分析。infoview->PostMessage(WM_CONNECTINFO,0,(LPARAM)(LPCTSTR)ftpupfile);strcpy(pdonefile[i].FileStatus,"上传出错");doneview->PostMessage(WM_DONEINFO,0,(LPARAM)(&pdonefile[i]));当传输完成后,客户端断开连接,以供其他用户进行连接:InternetCloseHandle(hFtpConn);InternetCloseHandle(hInetSession);客户端的下载功能实现也是采用的FTP传输,采用了短连接的传输模式与多线程进行实现,线程开辟模式与连接模式类似于文件上传。主要实现方式如下:if(FtpGetFile(hFtpConn,DirName,DirName,FALSE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_BINARY| INTERNET_FLAG_NO_CACHE_WRITE,0)) { ftpdownfile="下载文件"; ftpdownfile+=DirName; ftpdownfile+="完毕!"; infoview->PostMessage(WM_CONNECTINFO,0,(LPARAM)(LPCTSTR)ftpdownfile);}至此实现了网盘客户端通过FTP传输协议的上传与下载功能。5.2.4客户端聊天功能实现客户端与服务器的聊天功能采用CSocket实现,当服务器启动后开始侦听客户端的连接,而客户端启动后,进行服务器的地址和端口等信息输入,得到服务器的端口与信息后,进行服务器连接的工作。连接的过程类似FTP连接的过程,但是采用的端口为客户端与服务器协商的端口,建立起CSocket连接。连接完成后,采用CSocket的发送接口进行信息发送,发送信息时可以选择是否进行加密发送,不采用明码进行信息发送的原因是防止网关机等处布有网络嗅探器等设备,保证信息的隐私性与安全性。 iLen=m_strMessage.GetLength(); memset(encypt,0,150*sizeof(char)); EncryptionFun(iLen,original,encypt);系统编写的加密接口名为EncryptionFun,对输入的字符串进行加密后通过CSocket进行发送。 m_strMessage.Format("%s",encypt,iLen); iLen=m_strMessage.GetLength(); iSent=m_sConnectSocket.Send(LPCTSTR(m_strMessage),iLen);服务器的发送与接收接口类似于客户端,在侦听到客户端的连接后,等待客户端进行消息发送,当检测到有信息接收后进行接收,接收到信息后判断是否是加密信息,如果不是直接显示,如果判断接收到加密信息后进行解密然后显示。5.2.5客户端加密功能实现客户端的加密算法采用DES加密算法实现,在程序开始运行后系统获取系统设置的秘钥进行初始化,在用户设置信息加密后,对用户输入的信息进行DES加密处理,得到加密信息然后再进行发送,采用加密信息进行传输,以保证用户信息不被侦听,保证系统的安全性。加密机制采用信息分段处理,每四个字节进行处理一次:Transfer(iBlock,&iBlock[4],SubKey[i]);其中对字段加密接口的实现采用,采用子秘钥与要加密的字段进行异或,接着交换两个子秘钥再进行处理,如此重复,最终得到加密完成的报文进行发送。E32To48(rr,buff);for(i=0;i<6;i++)buff[i]^=key[i];E48To32(buff,rr);memcpy(buff,rr,4);for(i=0;i<4;i++)EBuildChar(&rr[i],buff,&EIPArr[i*8]);for(i=0;i<4;i++)rr[i]^=l[i];5.2.6服务器端软件功能实现服务器端的文件管理模块采用FileZilla公司的FileZillaServer系统进行实现,该软件可以实现接收FTP网络客户端的连接请求、文件传输请求等功能,而且具有高性能、高安全的特点,在千兆带宽上可以实现数百用户的连接与上传下载。作为本系统的网盘服务器端软件是非常适合的,也可以满足系统的功能要求。而系统中对服务器端的主要功能实现是服务器端用户留言、加密与点对点文件传输功能模块。服务器端的软件功能与客户端有一定的类似性,而主要的功能区别主要包括主动侦听和主动文件发送等功能。当服务器端开始运行后,管理员点击启动服务器按钮启动服务器端侦听软件:m_sListenSocket.Create(4000);intrete=m_sListenSocket.Listen();GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);服务器在监听到客户端发送信息后,显示给管理员进行分析与处理,如果客户端有单独的文件请求时,管理员可以通过网盘服务器端软件进行单点文件传输,从而满足客户的部分特殊要求。实现接口采用CSokcet的CFileDialog实现:sockRecv.Send(&StreamFileInfo,sizeof(SOCKET_STREAM_FILE_INFO));while(dwRead<StreamFileInfo.nFileSizeLow){ byte*data=newbyte[1024]; UINTdw=myFile.Read(data,1024); sockRecv.Send(data,dw); dwRead+=dw;}myFile.Close();sockRecv.Close();采用CFileDialog接口读取文件信息,然后通过CSocket进行发送。5.3本章小结本章主要介绍了本系统设计的局域网网盘系统的主要功能模块实现手段与算法,简要介绍了本系统的以下功能模块实现:(1)客户端的界面模块实现;(2)客户端登陆与文件传输功能模块实现;(3)客户端聊天与加密功能模块实现;(4)服务器端聊天与单点文件传输模块实现。系统采用多线程编程和短连接的链接模式实现了多用户、多线程文件上传下载的实现,采用MFC编写了系统界面,采用FTP传输协议实现了文件的传输与上传下载,采用CSocket和CFileDialog实现了网盘系统的留言功能与单点文件传输。系统实现算法简洁,结构明了,完整的了实现了系统设计初的目标。大连东软信息学院毕业设计(论文)第6章系统测试6.1测试概述测试的目的是在设计和规划的过程中发现系统存在的问题,测试系统是否可以完成系统初期设计的目的与要求。本系统的测试主要集中在该评分系统能否完成设计的功能与性能要求,适用于不同工作环境,完成快速阅卷和实际的要求。本系统的测试方式主要采用黑盒测试,黑盒测试主要采用实际运用的目的来进行测试,并不对软件的代码和结构进行深入的分析,从外部功能方面查找软件的缺陷。与白盒测试相比,这种测试方法更重视软件功能的实现,需求和规格的要求会对测试结果有着较为明显的影响,所以测试结果有着更为实际的参考意义与价值。本系统的测试主要涵盖系统的主要模块,包括系统文件传输与管理、留言功能与加密和单点文件传输等,测试内容涉及到了系统的主要模块。对系统的功能与性能等方面,有着重要的参考意义。6.2测试用例6.2.1测试用例一:登陆测试如图6.1为用户登录测试。图6.1系统shawn用户登陆系统登陆采用shawn的用户名进行登陆,登陆到磁盘空间中分配的shawn目录中,采用另一个用户catherine进行登陆测试。图6.2系统catherine用户登陆由登陆测试结果可知,系统可以采用不同的用户进行登陆,并且可以正确的进入到对应用户的用户空间中,并且显示用户的文件列表。6.2.2测试用例二:文件上传与下载测试中采用catherine作为测试局域网内网盘用户,分别上传txt文件、word文件和html文件等,测试文件上传功能。图6.3文件上传功能测试在服务器端未给予catherine用户当前目录文件传输权限时,文件传输被拒绝:图6.4用户权限管理而在给予该用户上传权限后,用户可以正常的上传其所属文件。同样采用catherine用户进行文件下载,下载刚上传的log文件:图6.5文件下载测试通过该测试样例可见,本文设计的网盘系统可以正常的提供用户文件下载、上传与文件等共享功能,存储模块可以正确的将文件上传到服务器之中,而服务器可以正确的进行用户权限管理,实现了局域网内网盘文件共享与存储的功能。6.2.3测试用例三:聊天功能与信息留言首先是对留言功能的测试:图6.6留言功能测试(客户端)图6.7留言功能测试(服务器端)由测试结果可见,服务器端与客户端可以正常的连接并且互相留言。图6.8加密传输系统可以采用DES加密对信息进行加密传输,保证系统的安全性和可靠性。大连东软信息学院毕业设计(论文)第7章结论本文全面研究了现有网盘系统的关键技术与存在的问题,总结了当前应用于网盘系统的算法与研究现状;深入的研究了网盘系统的关键技术和算法并在Windows平台上实现了局域网网盘文件共享系统,进行了局域网网盘系统的功能与可行性分析,实现了客户端与服务器端的文件上传与下载、系统留言与交互、文件加密与点对点传输和系统的GUI界面,经过系统的白盒与黑盒测试验证了系统的稳定性和功能实现。系统的主要实现功能包括以下几个部分:(1) 网盘客户端的基于FTP传输协议的文件上传、下载与共享功能,基于Csocket的聊天与留言功能,基于DES加密的信息加密功能与基于MFC的人机交互界面功能,构成了系统的客户端部分。(2) 网盘服务器的文件传输、用户管理、聊天信息、加密和人机交互界面等功能。系统相比较于现有的网络硬盘与U盘等传输工具,具有实时性高、不依赖于互联网公网、用户管理简便、不依赖于传输介质和安全性高的优点,采用了多线程编程技术实现了上传与下载等功能多线程并发实现,整个系统具有较高的效率,满足了办公室与学校等场所工作人员的信息共享与维护等要求。系统的功能模块较为完善,但是仍然存在一些不足的地方未来可以进行一定的工作,主要包括以下几个方面:(1) 网盘系统的磁盘空间受到服务器的物理存储介质的影响,如何提高存储文件的压缩比,提高存储效率是未来比较重要的研究方向。(2) 系统虽然采用局域网光纤作为传输介质,可靠性较高,但是在出现突然的网络中断等情况时,尙不能进行断点续传和中断异常日志的上传与分析,这部分的工作也是非常具有意义的。总的来说整个网盘系统完成了设计初的目标,实现了文件共享与下载、用户管理和信息交互的功能,完成了系统设计目标,取得了较好的效果。 参考文献[1]陈树平,候贤良.计算机网络中des数据加密和解密技术,现代电子技术,2005,18:23-26[2]张千里.网络高效安全数据传输方法设计,现代电子技术,2010,7:10-12[3]方冰,张一中.高性能FTP搜索引擎的设计,南京邮电大学学报,2007,3:15-18[4]洪澄,张敏,冯登国.

面向云存储的高效动态密文访问控制方法[J].通信学报.2011,7:10-13[5]黄汝维,桂小林,余思,张进,卿杜政.

支持隐私保护的云存储框架设计[J].西安交通大学学报.2011,10:21-24[6]侯清铧,武永卫,郑纬民,杨广文.

一种保护云存储平台上用户数据私密性的方法[J].计算机研究与发展.2011,7:15-18[7]朱立谷,阳小珊,罗洪元,胡怀湘,鄢楚平.

网络存储综合测评技术研究[J].计算机工程与应用.2010,36:14-17[8]张迪,朱立谷,侯振宇,张福,曾赛峰.

基于WEB的移动端云存储技术研究[J].计算机工程与应用.2010,36:17-21[9]刘杰.

浅谈数字化校园中网络硬盘的建设[J].福建电脑.2010,9:5-8[10]李丽娜.

网络存储系统性能优化的设计和实现[J].微型电脑应用.2010,8:10-12[11]周可,王桦,李春花.

云存储技术及其应用[J].中兴通讯技术.2010,4:3-5[12]姜志宏,王晖,黄兵,李沛,樊鹏翼.

P2PTV在线用户的时空分布研究[J].计算机应用.2012,7:25-28[13]刘昕,胡光武,陈文龙,徐恪.

面向物联网的IPv6协议简化[J].清华大学学报(自然科学版).2012,5:7-11[14]胡光武,陈文龙,徐恪.

一种基于IPv6的物联网分布式源地址验证方案[J].计算机学报.2012,3:21-22[15]秦丰林,刘琚.

P2P网络流媒体关键技术[J].电子学报.2011,4:6-8[16]高磊,曾广周.

HYPERLINK"/kcms/detail/detail.aspx?filename=JSJX201012016&dbcode=CJFQ&dbname=CJFD2010&v=MDc5MDVMbWVaZWR2RkNqa1Y3ck5MejdCZHJHNEg5SE5yWTlFWW9SK0MzODR6aDRYbkQwTFRnMlgyaH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论