FTP客户端与服务器设计与实现课设报告(共31页)_第1页
FTP客户端与服务器设计与实现课设报告(共31页)_第2页
FTP客户端与服务器设计与实现课设报告(共31页)_第3页
FTP客户端与服务器设计与实现课设报告(共31页)_第4页
FTP客户端与服务器设计与实现课设报告(共31页)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上专心-专注-专业本科生专业方向应用实训科研训练FTP 客户端与服务器的设计与实现Design and implementation of FTP client and server学 生 姓 名蒲 凤专 业软件工程学 号指 导 教 师高培成 尹大力 祝勇学 院计算机科学技术二一七年七月 精选优质文档-倾情为你奉上专心-专注-专业起 止 周1719周 数3实习地点计算机学院专业实验室 选 题自 选科研训练目的:科研训练目的:实训的目的是使学生在学完专业课程后,学会并掌握软件开发的基本技能,巩固已学的知识,补充未学的但又必要的内容。通过了解并实践常见的软件开发过程进行系统

2、开发,并且使用相关语言进行专业方向的系统实现。科研训练要求:科研训练要求:1.了解实际项目分析、设计、开发、测试、部署等完整流程;2.熟练使用常用程序开发工具进行开发;3.养成良好的表达、沟通和团队协作能力,掌握快速学习方法,培养良好的分析问题和解决问题的能力。科研训练主要内容:科研训练主要内容:1.软件开发能力:培训学生的编程思想和基本工作技能,培养与提高学生的编程能力。2.软件工程能力:按照软件工程的思想,训练学生掌握面向对象分析/设计(UML 建模)、编码规范、概要设计方法、详细设计方法、模块划分方法等技能。3.工程实践能力:按照专业方向或学生就业方向选择一个项目进行实际开发,完成整个开

3、发过程。4.项目文档管理能力:实训最终要提交实训报告,包括项目需求分析、总体设计、详细设计、系统测试,及最终总结。指导教师评语:指导教师评语:成绩:成绩:指导教师指导教师/ /带队教师(签字)带队教师(签字) 2017 年 7 月 日精选优质文档-倾情为你奉上专心-专注-专业摘要摘要随着互联网技术的飞速发展,信息共享的时代己经到来。在实现数据传输与信息共享的诸多方式中,FTP 无疑是应用最广的一种方式。FTP 协议是计算机网络中的应用层协议,提供了可靠的文件传输功能,并且具有跨平台特性,两个不同类型的操作系统只要都支持 FTP 协议就可以进行文件传输工作。因此,探讨文件传输协议(FTP)的内容

4、和工作原理,分析 FIP 客户端与服务器的连接过程及 FIP 请求与应答工作模式,设计 C/S 架构下的 FTP 系统的实现方案,在.NET 平台利用 C#语言搭建起 FTP 系统的窗体界面,并且使用.NET 类库实现了文件上传、删除和修改等功能。关键词:关键词:FTPFTP 协议协议 服务器服务器 客户端客户端 .NET.NET精选优质文档-倾情为你奉上专心-专注-专业AbstractWith the rapid development of Internet technology, the era of information sharing has arrived. In many wa

5、ys of realizing data transmission and information sharing, FTP is undoubtedly the most widely used method. FTP protocol is an application layer protocol in computer network, provides a reliable file transfer function, and has the characteristics of cross platform, two different types of operating sy

6、stem as long as can support the FTP protocol for file transfer work. Therefore, to explore the file transfer protocol (FTP) content and working principle, analysis of the connection process and the FIP request and response mode FIP the client and the server implementation scheme of FTP system design

7、 under the C/S framework, the window body interface.NET platform using C# language to build FTP system, and use the.NET Library to achieve the file upload, delete and modify functions.Key words: FTP protocol;server;client;.net 精选优质文档-倾情为你奉上专心-专注-专业目录目录精选优质文档-倾情为你奉上专心-专注-专业22精选优质文档-倾情为你奉上专心-专注-专业第一章第

8、一章 绪论绪论网络的首要目的就是实现信息共享,文件传输是其中重要的一个方面,随着 Internet 的迅猛发展,信息数据的传输量大大增加,数据的网络传输显得越来越重要。利用 FTP(File Transfer Protocol)文件传输协议来实现远程文件的传输是软件设计常用的方法。FTP 是基于客户端/服务器结构的文件传输协议,它相对成熟,并有着改进和增强 FTP 文件传输协议的相关协议支持。目前 FTP 客户端软件很多,主要分为 3 类:第一类是传统的 DOS 环境下的 FTP 操作,由于其效率低和操作繁琐,目前使用很少;第二类是图形化界面的 FTP 软件,目前主要有 WS-FTP、Cute

9、FTP 等;第三类是浏览器,同样支持 FTP 协议,但速度相对于专业软件来说较慢。设计并实现了 FTP 服务器/客户端,能实现连接、下载、上传等功能,操作简便、交互性强。1.11.1 研究背景研究背景互联网技术的飞速发展,推动了全世界范围内资料信息的传输与共享,深刻地改变了人们的工作和生活方式。FTP 技术作为文件传输的重要手段,己经得到了广泛的使用。通常人们可以使用电子邮箱、即时通讯客户端(例如 QQ)和FTP 客户端来进行资料的传输。在这几种常用的方式中,电子邮箱必须以附件的形式来传输文件,并且对文件大小有限制;即时通讯客户端中的文件传输一般要求用户双方必须在线,如今虽然增加了离线传输的功

10、能,但该功能本质上是通过服务器暂时保存用户文件实现的,与 FTP 原理类似。此外通过这两种方式传输文件资料有一个共同的缺陷:需要传输的文件无法以目录系统的形式呈现给用户。所以,FTP 文件传输系统有其无可替代的优势,在文件传输领域始终占据重要地位,因此对其进行的研究颇有现实意义。FTP 之所以流行于全世界很大程度归功于匿名 FTP 使用及推厂。用户不需要注册就可以通过匿名 FTP 登录到远程主机来获取所需的文件。所以,每一位用户都可以在匿名 FTP 主机上获取所需的文件,匿名 FTP 为世界各个角落的人提供了一条通往巨大资源库的道路,人们可以在资源库中自由下载所需要的资源,并且这个资源库还在不

11、断地扩充中。另外在 Internet 上,匿名 FTP 是软件分发的主要方式,许多程序通过匿名 FTP 分布,每一个程序开发者都可以搭建FTP 服务器来发布软件。早期的 FTP 文件传输系统以命令行的形式呈现,发展至今涌现出很多图形界面的 FTP 应用软件,比较常见的有 F1ashFXP、CuteFTP, Serv-U。这些 FTP软件都采用 C/S 架构,即包含客户端和服务器两个部分,基于 FTP 协议实现信息交互。用户通过客户端进行基本的上传下载操作,实现资源文件的共享。然精选优质文档-倾情为你奉上专心-专注-专业而,绝大部分网络浏览器提供的文件下载器并不具备文件资源管理功能或管理起来很不

12、方便,另外,市面上大部分 FTP 软件都是收费、不开源的并且会出现功能冗余、配置繁琐的情况。所以自主设计一个客户端与服务器两者兼具并且具备良好人机交互界面的 FTP 文件传输系统就显得尤为重要。1.21.2 国内外研究现状国内外研究现状1971 年,第一个 FTP 的 RFC (Request For Comments,是一系列以编号排定的文件,包含了关于 Internet 几乎所有重要的文字资料)由 A.K.Bhushan 提出,同一时期由 MIT 和 Havard 实现,即 RFC114。在随后的十几年中,FTP 协议的官方文档历经数次修订,直到 1985 年,一个作用至今的 FTP 官方

13、文档RFC959 问世。如今所有关于 FTP 的研究与应用都是基于该文档的。FTP 服务有一个重要的特点就是其实现并不局限于某个平台,在 Windows, DOS, UNIX 平台下均可搭建 FTP 客户端及服务器并实现互联互通。自 FTP 协议的第一个 RFC 版本发布以来,历经数十年的发展,海内外涌现出来众多优秀的支持 FTP 协议的软件。国外的软件有:Serv-U , F1ashFXP , CuteFTP 等;国内的软件有:迅雷、网络蚂蚁、ChinaFTP 等。其中国外的软件大部分需要付费使用,国内几乎没有FTP 开源软件,软件质量参差不齐,难以保证安全性。虽然目前大部分操作系统都自带

14、FTP 功能,但是自带的 FTP 功能都是基于命令行进行操作,这就需要用户熟记相关操作指令,不够人性化,用户使用起来相当不便,所以很有必要设计一个开源的、功能完善的、具有友好人机交互界面的 FTP 文件传输系统。1.31.3 课程设计主要研究内容和架构课程设计主要研究内容和架构本课题是在 Visual Studio 2013 开发环境下开发 FTP 客户端以及服务器。基于.net 平台和标准 FTP 协议开发,主要涉及到多线程网络编程的诸多技术,比如网络 I/O,线程同步等技术。本课题设计的 FTP 客户端有其特色功能:支持文件传输,同时具备良好的人机交互界面;设计的 FTP 服务器采用了多线

15、程技术,使得服务器能够从容应对高并发访问。本课题主要工作是在.net 环境下开发网络应用程序,在开发的过程中所做的工作如下:(1)熟悉计算机网络,TCP/IP 模型以及 FTP 标准协议。(2)熟悉 Visual Studio 2013 开发工具和 C#编程语言。(3)研究 FtpWebRequest、FtpWebResponse 类,熟练掌握编写网络应用程序的方法。(4)研究基于流的 I/O 操作模式和多线程编程技术并将其应用于所开发的程序。(5)设计并实现 FTP 客户端/服务器,实现了预期的功能,解决了高并发访问的问题。精选优质文档-倾情为你奉上专心-专注-专业第二章第二章 需求分析需求

16、分析2.1 需求分析需求分析作为一个实用的 FTP 系统,基本功能必不可少,包括用户登录以及用户信息验证,此外最重要就是文件上传与下载。用户在使用 FTP 客户端时,可以选择主动模式或者被动模式连接服务器。可以选择验证用户名与密码或者匿名登陆。服务器会验证用户名与密码,判断用户能否登上服务器,划分用户的权限。这样可以保障安全性。用户使用 FTP 客户端程序主要为访问服务器,获取或者上传服务器文件。本文 FTP 系统采用 C/S 模式完成文件上传与下载,服务器与客户端分别完成数据连接时的信息发送与响应返回功能,两者配合使用,使得 FTP 系统具有较强的实用性。2.2 功能列表功能列表 表 2-1

17、 功能列表功能分组功能名功能简要说明登录服务器要核对用户名和密码,判断是否为匿名用户,显示不同功能模块登录与注销退出服务器与服务器断开连接,功能模块不可用选择连接模式使用主动连接模式或者被动连接模式模式选择选择传输类型选择 Binary 或者 ASCII 数据传输类型显示列表将服务器的文件资源显示在列表中跳转目录输入路径改变当前目录新建目录在服务器端新建文件夹,需要用户实名登陆目录管理重命名文件夹将服务器文件夹重命名,需要用户实名登陆上传文件将本地文件上传至服务器,需要用户实名登陆下载文件将服务器文件下载至本地删除文件将服务器文件从服务器删除,需要用户实名登陆文件管理重命名文件将服务器文件重命

18、名,需要用户实名登陆2.3 系统权限系统权限普通用户登陆后拥有所有功能。匿名用户匿名登陆后只拥有下载功能以及目录跳转要求。精选优质文档-倾情为你奉上专心-专注-专业第三章第三章 技术方案技术方案3.1 .NET 架构平台架构平台. NET 是 Microsoft XML Web services 平台,XML Web services 的应用程序是通过 Internet 进行通讯和共享数据,而与操作系统、设备和编程语言无关。Microsoft .NET 平台也正提供了创建 XML Web services 功能并将相关服务集成在一起,使用户可无缝地使用。.1 .NET.NET

19、的体系结构的体系结构框架由公共语言运行时(CLR)、共享对象类库,ASP.NET 三部分组成,其体系架构如图 3-1 所示。 共享对象类CLRASP.NET操作系统图 3-1 .NET 框架组成图公共语言运行时(Common Language Runtime, CLR)是架构在操作系统服务之上的,是所有.NET 程序语言公用的运行时期组件。它是负责应用程序的实际执行,满足所有应用程序的需求,如果要执行任一程序语言开发出的程序,就必须安装该程序语言的运行时期组件,因为它包含了该语言程序的核心功能,如函数和对象等。共享对象类集成了不同程序语言的对象库,成为所有程序共享的对象库,其中包括 Web 类

20、(ASP. NET )、数据类(ADO. NET) , XML 类、绘图类、系统类、Windows 窗体类等,它既是.NET 应用软件开发的基础类库,也是.NET 平台本身的实现基础,其中.NET 类库的组织是以命名空间为基础的,最顶层的名字空间为 System。 ASP. NET 是共享对象类库中的一员,它提供了一个 Web 应用程序模型,其中该模型提供了一些 Web 窗体、控件及基础架构,该模型的作用能让程序设计者可轻松地建立 Web 应用程序;它提供了一些对应 HTML 元素的 HTML 控件以及功能更强的 Web 控件,这些控件在服务器端执行,然后在客户端的浏览器以 HTML的方式显示

21、。.2 .NET.NET 框架的特色框架的特色1、透过因特网的标准做整合。以 XML (extensible Markup Language,延伸标注语言)及 SOAP (Simple Object Access Protocol,简单对象存取协议)精选优质文档-倾情为你奉上专心-专注-专业等标准通讯协议,将各种由不同环境所组成的应用程序及组件整合在一起工作。 2、松散的整合组件。现阶段,要建立多层且功能可扩充的系统,其架构非常复杂,而且工具很少,而.NET Framework 不需要很严谨的定义每个组件的结构即可很轻松的整合,提高程序的扩展性。 3、支持多种程序语言。许多程序

22、设计者会使用多种语言来开发他们的解决方案,这是因为每种语言都有它的长处,.NET Framework 把这些语言整合起来,可以让开发人员使用不同的程序语言来开发解决方案: 4、提高程序的开发效率。利用.NET 框架的自动内存管理,以及丰富的控件等特色,可使程序设计人员减少写程序会发生的问题,专心于撰写企业处理数据的规则,从而,缩短项目的开发时间。 5、完善的数据安全。目前因特网最受大家注目的是它的安全性,.NET Framework 在设计安全模型时将所有的数据与程序代码做完善的安全防护。 6、可用操作系统的服务。Windows 提供了比其它作业平台更丰富的服务及资源,.NET Framewo

23、rk 将这些操作系统所提供的功能包装起来,以更简单的方式提供给程序设计者使用。3.23.2 开发工具开发工具.1 VisualVisual StudioStudio Microsoft Visual Studio(简称 VS)是美国微软公司的开发工具包系列产品。VS 是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如 UML 工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括 Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Comp

24、act Framework 和Microsoft Silverlight 及 Windows Phone。Visual Studio 是目前最流行的 Windows平台应用程序的集成开发环境。最新版本为 Visual Studio 2017 版本,基于.NET Framework 4.5.2 。精选优质文档-倾情为你奉上专心-专注-专业第四章第四章 总体设计总体设计4.14.1 系统体系结构模型系统体系结构模型开发 FTP 服务器/客户端软件必须遵循 FTP 的工作模式,FTP 独特的优势在于它在两台通信主机之间使用了两条 TCP 连接,一条用于数据传送,一条用于控制信息的传送。这种将命令和数

25、据分开传送的思想大大提高 FTP 工作的效率。图 4-1 给出本系统的体系结构模型。用户计算机登录上传下载新建删除重命名编辑查找图 4-1 FTP 体系结构模型客户端与服务器建立连接是典型的“三次握手” ,过程如下:客户端发送请求与服务器控制连接的协议包;服务器同意建立连接,发送应答;最后,客户端向服务器发送确认,至此,连接建立。与此同时,FTP 要求客户向服务器提供用户名和口令,一旦连接成功一个或多个文本或图像二进制文件都能被安全传送,在整个交互过程中,控制连接始终处于连接状态,数据连接在每一次文件传送时先打开后关闭,FTP 依靠可靠传输协议 TCP,不必担心可靠性和连接的管理。4.24.2

26、 FTPFTP 系统模型系统模型FTP ( File Transfer Protocol)文件传送协议,位于 OSI 体系中的应用层,是一个用于从一台主机向另一台主机传送文件的协议,基于 C/S 架构。用户通过 FTP 客户端连接到在某个远程主机上的 FTP 服务器。用户通过 FTP 客户端向服务器程发送指令,服务器根据指令的内容执行相关操作,最后将结果返回给客户端。例如,用户向 FTP 服务器发送文件下载命令,服务器收到该命令后将指定文件传送给客户端,并将执行结果返回给客户端。精选优质文档-倾情为你奉上专心-专注-专业FTP 系统和其他 C/S 系统的不同之处在于它在客户端和服务器之间同时建

27、立了两条连接来实现文件的传输,分别是控制连接和数据连接。控制连接用于客户端和服务器之间的命令和响应的传递;数据连接则用于传送数据信息。当用户通过 FTP 客户端向服务器发起一个会话的时候,客户端会通过熟知端口 21 与 FTP 服务器建立一个 TCP 连接,即控制连接。客户端使用此连接向FTP 服务器发送所有 FTP 命令并读取所有应答。而对于大批量的数据,如数据文件或详细目录列表,FTP 系统会建立一个独立的数据连接去传送相关数据。以主动传输方式为例,客户端使用 PORT 命令向服务器发送地址和端口,服务器与客户端指定的地址和端口建立连接,然后在这条连接上面进行文件的上传或下载。FTP 工作

28、模型示意图如图 4-2 所示。客户端接口客户端协议层客户端数据传输层服务器协议层服务器数据传输层文件系统文件系统FTP客户端FTP服务器端控制连接数据连接用户图 4-2 FTP 工作模型示意图4.34.3 系统工作流程设计系统工作流程设计FTP 客户端的工作流程设计如下:(1)用户输入用户名和密码进行登录操作。(2)连接 FTP 服务器成功后发送 PORT 或 PASV 命令选择传输模式,处理TYPE 命令确定数据传输方式。(3)发送 LIST 命令通知服务器将目录列表发送给客户端。(4)服务器通过数据通道将远程目录信息发送给客户端,客户端对其进行解析并显示到对应的服务器目录列表框中。(5)通

29、过控制连接发送相应的命令进行文件的下载和上传、目录的下载和上传以及目录的新建或删除等操作。(6)启动下载或上传线程执行文件的下载和上传任务。精选优质文档-倾情为你奉上专心-专注-专业(7)使用结束,断开与 FTP 服务器的连接。FTP 系统工作流程图如图 4-3 所示。 操作请求 目录新增目录删除文件重命名文件下载文件下载开始登录验证用户、密码传输模式、数据传输方式请求文件目录启动进程操作完毕结束YN图 4-3 FTP 系统工作流程图4.44.4 系统功能模块介绍系统功能模块介绍按照需求分析中的功能列表,以及对每个模块的功能分析,可以整理得出系统的功能模块总体结构如图 4-4 所示:FTP系统

30、模式选择目录管理下载文件上传文件跳转目录新建目录删除文件重命名登陆与注销文件管理选择连接模式选择数据类型登陆服务器退出服务器删除目录显示目录重命名目录图 4-4 系统功能模块总体结构图4.2.1 登陆与注销登陆与注销登陆时,用户可以选择实名登陆或者匿名登陆。不同的登陆方式将显示不精选优质文档-倾情为你奉上专心-专注-专业同的功能界面,从而达到动态的赋予用户不同的权限,增加了服务器的安全性。实名用户可以使用 FTP 服务器的所有功能。匿名用户只能下载服务器上的文件。注销将断开客户端与服务器的连接,使所有的功能不可用。4.2.2 模式选择模式选择用户可以选择主动连接方式或者被动连接方式与服务器进行

31、连接。主动模式下客户端高位端口与服务器低位端口连接,被动模式下客户端高位端口与服务器高位端口连接。数据传输方式可以选择 Binary 格式或者 ASCII 格式。4.2.3 文件管理文件管理文件管理模块是系统的主要模块,是用户在客户端进行的主要活动,也是所有 FTP 系统的基本模块。文件管理中包括上传文件、下载文件、重命名文件、删除文件,其中上传文件、重命名文件和删除文件需要用户实名登陆才可以使用。4.2.4 目录管理目录管理用户每次对 ftp 服务器上的文件进行一次操作后,客户端都会刷新一次列表,显示最新的目录列表。目录管理中包括显示列表、跳转目录、删除目录、重命名目录,其中删除目录和重命名

32、目录需要用户实名登陆才可以使用。精选优质文档-倾情为你奉上专心-专注-专业第五章第五章 详细设计详细设计FTP 客户端实现的主要功能分为三类:登录与注销、文件管理、目录管理。 5.15.1 登陆与注销登陆与注销FTP 客户端登录流程图如图 5-1 所示:开始服务器IP是否为空是否匿名匿名登录输入用户名、密码打开命令通道User 用户名响应代码正确Pass 密码响应代码正确登录成功NYYNYNYN图 5-1 FTP 客户端登录流程图客户端首先通过 NetworkCredential 类实例化对象,通过它我们可以在网络中提供一个凭证,只有获得该凭证的用户才能访问相应的服务的权限。客户端向服务器发送

33、“USER”命令,服务器调用 CommandUser()函数检查用户名命令是否正确。该命令正确后,服务器端向客户端发送响应代码,进入下一步,即检验密码。客户端向服务器发送“PASS”命令,服务器调用CommandPassword()函数获得相应的用户密码,进入 TryGetValue()函数,检验用户名和密码是否正确。如果用户名、密码均正确,发送响应代码“230 User成功登陆” ;如果密码错误,发送响应代码“530 密码错误” ;如果用户名或者密码其中一个错误,则发送响应代码“530 用户名或密码错误” ;否则则发送响应代码“501 PASS 命令语法错误” 。 客户端的注销功能则更容易实

34、现。客户端通过命令通道向服务器发送“QUIT”命令,服务器响应该命令,调用 Close()函数,关闭 TCP 连接并释放与其关联的所有资源。如图 5-2 所示精选优质文档-倾情为你奉上专心-专注-专业开始QUIT命令服务器调用CLOSE函数关闭TCP连接及相关联资源成功退出结束图 5-2 FTP 客户端退出流程图5.25.2 文件管理文件管理文件管理是 FTP 系统中最重要的功能之一,它分为文件下载、文件上传、文件重命名和文件删除。5.2.1 文件下载文件下载 文件下载的原理就是在本地新建同名文件并在数据通道接收数据,然后将数据写入文件。客户端文件下载的过程介绍如下:选中需下载的文件,点击下载

35、按钮触发 btndownload_Click ()消息响应函数,在消息响应函数里客户端通过 FtpWebRequest 类实例化对象,调用CreateFtpWebRequest()函数向服务器发送请求,发送“RETR”命令,服务器调用 CommandRETR ()函数发送响应代码“150”到客户端,表示服务器文件状态良好,将要打开数据连接传输文件。客户端通过 FtpWebResponse 类实例化对象,调用 GetFtpResponse ()函数获取服务器响应信息,读取 response 对象的状态码和状态描述信息。在数据通道打开后,多次调用文件流函数在数据通道接收数据。之所以要多次接收数据是

36、因为文件并不是一次性传输过来的,而是每次接收 8196 比特的数据。客户端每次从数据通道获取一部分数据并将其追写到己创建的文件里,直至接受数据失败。客户端文件下载流程如图 5-3 所示。开始服务请求创建本地文件建立数据通道RETR+文件名数据通道接受数据文件是否存在且缓存数据非空写入文件结束YN 图 5-3 文件下载流程图精选优质文档-倾情为你奉上专心-专注-专业5.2.2 文件上传文件上传 文件上传的原理是读取本地文件数据,将数据通过数据通道发送给服务器,服务器再将数据写入远程文件。客户端文件上传流程如图 4.7 所示。选中需上传的文件,点击上传按钮触发 btnUpload_Click ()

37、消息响应函数,在消息响应函数里客户端通过 FtpWebRequest 类实例化对象,调用 CreateFtpWebRequest()函数向服务器发送请求,发送“STOR”命令,服务器调用 CommandRETR ()函数发送响应代码“150”到客户端,表示服务器文件状态良好,将要打开数据连接传输文件。客户端通过 FtpWebResponse 类实例化对象,调用 GetFtpResponse ()函数获取服务器响应信息,读取 response 对象的状态码和状态描述信息。在数据通道打开后,多次调用文件流函数在数据通道上传数据,将本地文件发送至服务器,直到读取文件数据为空。客户端文件上传流程如图

38、5-4 所示。开始服务请求打开本地文件建立数据通道STOR+文件名从本地文件读取数据文件是否存在且读取数据非空将数据发送至数据通道结束YN 图 5-4 文件上传流程图5.2.3 文件重命名文件重命名客户端通过 lstbxFtpResources 选中需重命名的文件,点击重命名按钮触发 btn_rename_Click ()消息响应函数,在消息响应函数里客户端通过FtpWebRequest 类实例化对象,调用 CreateFtpWebRequest()函数向服务器发送请求,发送“RNFR”命令,服务器调用 Command RNFR ()函数发送响应代码“250”到客户端,表示服务器文件存在且接受

39、重命名。发送“RNTO”命令,服务器调用 CommandRNTO()函数发送响应代码“250”到客户端,表示服务器文件已完成重命名。客户端通过 FtpWebResponse 类实例化对象,调用GetFtpResponse ()函数获取服务器响应信息,读取 response 对象的状态码和状态描述信息,调用 ShowFtpFileAndDirectory()函数,显示重命名后的文件精选优质文档-倾情为你奉上专心-专注-专业信息。5.2.4 文件删除文件删除客户端通过 lstbxFtpResources 选中需删除的文件,点击删除按钮触发btnDelete_Click()消息响应函数,在消息响应函

40、数里客户端通过FtpWebRequest 类实例化对象,调用 CreateFtpWebRequest()函数向服务器发送请求,发送“DELE”命令,服务器调用 CommandDELE()函数发送响应代码“250”到客户端,表示服务器文件已删除。客户端通过 FtpWebResponse 类实例化对象,调用 GetFtpResponse ()函数获取服务器响应信息,读取 response对象的状态码和状态描述信息,调用 ShowFtpFileAndDirectory()函数,显示删除后的文件信息。5.45.4 目录管理目录管理5.4.1 目录显示目录显示在成功登录之后,要完成文件的传输,首先要获得

41、客户端和服务器指定目录的内容,然后才能进行相应文件的上传或下载。客户端通过 FtpWebRequest类实例化对象,调用 CreateFtpWebRequest()函数向服务器发送请求,发送“LIST”命令,服务器调用 CommandLIST ()函数获取文件目录列表,开启ASCII 数据传输方式,检验文件目录是否正确。该命令正确后,服务器端向客户端发送响应代码以及文件信息。客户端通过 FtpWebResponse 类实例化对象,调用 GetFtpResponse ()函数获取服务器响应信息,读取 response 对象的状态码和状态描述信息,若出现异常,则输出错误提示信息;反之,则将信息返回

42、到界面控件 lstbxFtpState 中。读取网络流数据,处理并显示文件目录列表。通过返回信息,截取相应字符串判断是否是文件或者文件目录。如果是文件目录,在文件名之前加上“目录” ,以便用户能够更清楚的分辨是否是文件或者文件目录。循环设置文件格式,调用 PadRight()函数设置左对齐,将文件信息返回到界面控件 lstbxFtpResources 中,用户便可以看到远程服务器中的文件目录。流程图如图 5-5 所示。精选优质文档-倾情为你奉上专心-专注-专业开始登录成功客户端FtpWebRequest类实例化客户端调用CreateFtpWebReauest函数向服务器发送LIST命令文件目录

43、是否正确服务器调用CommandLIST函数返回文件目录信息返回异常,提示错误信息结束是否是文件目录显示信息加上目录,调用PadRight函数,对齐目录信息是否是文件调用PadRight函数,对齐文件信息文件信息返回至ListFtpResource结束NYYNY图 5-5 FTP 客户端列出远程目录流程图5.4.2 目录切换目录切换FTP 客户端目录切换流程图如图 4-6 所示:开始登录成功输入待切换目录目录非空且有效调用ShowFtpFileAndDirectory函数,显示文件列表结束YN图 5-6 目录切换流程图在成功登录之后,输入待切换目录后,点解跳转按钮,触发btn_goto_Cli

44、ck()事件。客户端通过 FtpWebRequest 类实例化对象,调用精选优质文档-倾情为你奉上专心-专注-专业CreateFtpWebRequest()函数向服务器发送请求,发送“CWD”命令,服务器调用 CommandCWD ()函数检验文件跳转目录是否正确。该命令正确后,客户端再发送“LIST”命令至服务器,服务器端向客户端发送响应代码以及文件信息。客户端通过 FtpWebResponse 类实例化对象,调用 GetFtpResponse ()函数获取服务器响应信息,读取 response 对象的状态码和状态描述信息,若出现异常,则输出错误提示信息;反之调用 ShowFtpFileAn

45、dDirectory()函数,显示切换目录文件信息。5.4.3 目录添加目录添加在成功登录之后,输入待添加目录后,点解目录创建按钮,触发btn_create_Click ()事件。客户端通过 FtpWebRequest 类实例化对象,调用CreateFtpWebRequest()函数向服务器发送请求,发送“MKD”命令,服务器调用 CommandMKD ()函数添加文件目录。该命令正确后,客户端再发送“LIST”命令至服务器,服务器端向客户端发送响应代码以及文件信息。客户端通过FtpWebResponse 类实例化对象,调用 GetFtpResponse ()函数获取服务器响应信息,读取 re

46、sponse 对象的状态码和状态描述信息,若出现异常,则输出错误提示信息;反之调用 ShowFtpFileAndDirectory()函数,显示添加后的目录文件信息。流程图如图 5-7 所示。开始登录成功输入待添加目录目录非空发送MKD命令,服务器成功响应YN调用ShowFtpFileAndDirectory函数,显示文件列表结束图 5-7 目录添加流程图精选优质文档-倾情为你奉上专心-专注-专业5.4.4 目录重命名目录重命名客户端通过 lstbxFtpResources 选中需重命名的目录,点击重命名按钮触发 btn_rename_Click ()消息响应函数,在消息响应函数里客户端通过F

47、tpWebRequest 类实例化对象,调用 CreateFtpWebRequest()函数向服务器发送请求,发送“RNFR”命令,服务器调用 Command RNFR ()函数发送响应代码“250”到客户端,表示服务器文件存在且接受重命名。发送“RNTO”命令,服务器调用 CommandRNTO()函数发送响应代码“250”到客户端,表示服务器文件已完成重命名。客户端通过 FtpWebResponse 类实例化对象,调用GetFtpResponse ()函数获取服务器响应信息,读取 response 对象的状态码和状态描述信息,调用 ShowFtpFileAndDirectory()函数,显

48、示重命名后的目录信息。5.4.5 目录删除目录删除客户端通过 lstbxFtpResources 选中需删除的文件,点击删除按钮触发btnDelete_Click()消息响应函数,在消息响应函数里客户端通过FtpWebRequest 类实例化对象,调用 CreateFtpWebRequest()函数向服务器发送请求,发送“DELE”命令,服务器调用 CommandDELE()函数发送响应代码“250”到客户端,表示服务器文件已删除。客户端通过 FtpWebResponse 类实例化对象,调用 GetFtpResponse ()函数获取服务器响应信息,读取 response对象的状态码和状态描述

49、信息,调用 ShowFtpFileAndDirectory()函数,显示删除后的目录信息。精选优质文档-倾情为你奉上专心-专注-专业第六章第六章 软件测试软件测试软件产品的最终目的是为了满足客户需求,我们以客户需求作为评判软件质量的标准,并给出了软件缺陷的具体含义:软件未达到客户需求的功能和性能;软件超出了客户需求的范围;软件中出现了客户需求不能容忍的错误;软件的使用未能符合客户的习惯和工作环境。软件测试是假定存在软件缺陷,因而想通过检测来发现尽可能多的软件缺陷过程。软件测试基于下面三个理念:测试是为了发现软件中的缺陷而执行软件的过程;好的测试方案是尽可能发现迄今为止尚未发现的缺陷的测试方案;

50、成功的测试是发现了迄今为止尚未发现的缺陷。而软件测试的关键是测试用例的设计,测试用例测试是测试的重要环节,设计测试用例的目标是选用少量高效的数据(测试用例)尽可能多地发现软件中的问题。设计方法可以分成两类:白盒测试和黑盒测试。白盒测试:把程序看成是装在一只透明的盒子里,测试者完全了解程序的结构和处理过程。白盒测试的具体方法主要是逻辑覆盖,由于覆盖的程度不同,逻辑覆盖从弱到强又分为语句覆盖、判定覆盖、条件覆盖、条件组合覆盖和路径覆盖等。黑盒测试:把程序看成是装在一只不透明的盒子里,测试者完全不了解程序的结构和处理过程。黑盒测试根据规格说明书规定的功能来设计测试用例,检査程序的功能是否符合规格说明

51、的要求。黑盒测试具体有等价类划分、边界值分析、错误推测和因果图等方法。6.16.1 测试测试方法方法本次测试为功能测试。功能测试:即黑盒测试,测试人员在了解被测试目标的功能规格、高层设计和操作规范的基础上,测试被测试系统的可用性。6.26.2 测试用例测试用例下面以部分功能为例,列出部分功能所编写的测试用例,如下表 6-1 所示。精选优质文档-倾情为你奉上专心-专注-专业表 6-1 功能测试用例表功能输入/动作期望结果实际情况通过/失败登陆输入错误的服务器地址客户端显示连接错误地址客户端显示连接错误地址通过登陆输入正确的用户名、错误的密码服务器返回密码错误服务器返回密码错误通过跳转输入正确的文

52、件路径成功跳转到路径成功跳转到路径通过跳转输入错误的文件路径客户端弹出窗口提示文件不存在客户端弹出窗口提示文件不存在通过下载下载不存在的服务器文件显示文件不存在并刷新目录显示文件不存在并刷新目录通过下载下载存在的服务器文件下载文件至本地并显示成功下载下载文件至本地并显示成功下载通过重命名重命名文件,文件名已存在客户端提示文件名已存在客户端提示文件名已存在通过重命名重命名文件,文件名不重复成功重命名并刷新目录成功重命名并刷新目录通过上传上传不存在本地文件至服务器客户端弹出窗口显示文件不存在客户端弹出窗口显示文件不存在通过上传上传存在本地文件至服务器,文件名不重复客户端显示上传成功,并刷新目录客户

53、端显示上传成功,并刷新目录通过6.36.3 测试过程及结果测试过程及结果根据需求分析,FTP 系统需要达到的功能为:1. 登陆与注销2. 模式选择3. 目录管理4. 文件管理精选优质文档-倾情为你奉上专心-专注-专业对各项功能的详细测试情况如下表 6-2 所示。表 6-2 详细测试测试模块测试功能测试结果登录服务器通过登录与注销退出服务器通过选择连接模式通过模式选择选择传输类型通过显示列表通过跳转目录通过新建目录通过目录管理重命名文件夹通过上传文件通过下载文件通过删除文件通过文件管理重命名文件通过登录服务器通过登录与注销退出服务器通过模式选择选择连接模式通过精选优质文档-倾情为你奉上专心-专注

54、-专业第七章第七章 总结总结在当前的信息技术和网络技术迅速发展的今天,FTP 协议在网络传输中充当着重要的角色,它也是目前网络传输信息的主要工具。只要对于 FTP 进行合理有效的使用,那么就可以使得每一个 FTP 站点的各种资源得到很好共享和利用。另外企业在进步和发展过程中,FTP 协议在网络传输以及信息传递过程中,不仅具有很高的传输速度,同时也具有很好的安全可靠性,因此使用和开发FTP 协议是一种趋势,同时也具有很高的应用价值。伴随着科学技术的不断发展,基于 FTP 协议之下的网络传输也将会得到更好的创新与发展,其在网络安全和传输中也将发挥着越来越重要的作用。在.NET 平台下,利用基础类库

55、,进行二次封装,实现了 FTP 客户端和服务器软件。实现过程中也遇到了一些问题,经过思考总结了以下注意点:(1)要详细了解 NET 平台 FtpWebRequest 和 FtpWebResponse 类的成员及方法,在实现过程中,Method 的方法起到了至关重要的作用,使开发变得便捷。(2)开发网络程序要注意异常的捕获,由于网络经常不稳定,导致服务器不能完全正确地响应客户端的请求和命令,随时捕获异常能使客户端运行起来更加安全流畅。(3)在功能实现的过程中要注意对路径的处理,虽然只是简单的字符串操作,但是一旦路径出现错误,客户端就无法获得服务器正确的响应,便不能实现预期的功能。 在 Inter

56、net /LAN 网络环境下,开发与设计了 FTP 客户端/服务器。实现了FTP 文件传输和操作基本和常用的功能并采用可视化界面,用户使用简单方便。传输文件的形式为文本文件和二进制文件。客户端与服务器端具有应答消息。遵循 FTP 协议,完成其连接命令,参数设置命令和服务请求命令。用户端的命令只需完成最基本的功能,其他的功能作为可选项。采用面向对象,消息驱动及多线程等软件新技术实现程序中的功能。同时,实现的 FTP 系统还存在一些问题,它虽然具备了一些基本的功能,也可以正确运行,但是还需要新功能的扩展,包括断点续传、服务器内容实时更新等,这些功能会给用户带来更多方便,这也是后续的研究方向。精选优

57、质文档-倾情为你奉上专心-专注-专业参考文献参考文献1顾彤辰. FTP 客户端及服务器系统的设计与实现D.南京邮电大学,2016.2李俊丽. 基于 MFC 的 FTP 客户端的实现J. 山西电子技术,2016,(02):43-45.3孟祥成. 基于.NET 的 FTP 客户端设计与实现J. 软件导刊,2015,(06):123-124.4龚俐,毛晓蛟.基于 C#的 FT 客户端的实现J. 电脑编程技巧与维护,2010,(24):94-95+134.5詹百灵. 基于 C#的 FTP 客户端软件设计J. 漳州职业技术学院学报,2009,(02):10-14.6刘萍,张继刚,滕桂明. FTP 客户端

58、软件的实现J. 黑龙江科技信息,2008,(01):63.7谢鹏. FTP 客户端程序的设计与应用J. 科技经济市场,2006,(11):2-3.8曹建刚,杨冬黎,罗钧,邵国强. FTP 客户端实现J. 佳木斯大学学报(自然科学版),2006,(01):93-95.9陈金阳,蒋建中,张良胜. FTP 协议分析及其客户端程序实现J. 计算机工程与应用,2005,(32):134-136.10李大红. 浅析内网 FTP 服务器的架设A. 湖北省科学技术协会.节能减排 绿色制造 智能制造低碳经济下高技术制造产业与智能制造发展论坛论文集C.湖北省科学技术协会:,2010:4.11陈倩. 嵌入式 FTP

59、 服务器的设计与实现J. 电子元器件应用,2010,(03):36-38.12辛士光. FTP 服务器 Serv-U 用户的批量创建J. 硅谷,2009,(09):37.13陈丽贤. FTP 服务器的架构与使用J. 实验科学与技术,2006,(03):36-38.14蔡勇. FTP 服务器技术研究及实现D.电子科技大学,2005.精选优质文档-倾情为你奉上专心-专注-专业附录附录/ 创建 FTP 连接 private FtpWebRequest CreateFtpWebRequest(string uri, string requestMethod) FtpWebRequest request

60、 = (FtpWebRequest)FtpWebRequest.Create(uri); request.Credentials = networkCredential; request.KeepAlive = true; if(rbtn_binary.Checked=true) request.UseBinary = true; if(rbtn_ascII.Checked = true) request.UseBinary = false; if (rbtn_pasv.Checked = true) request.UsePassive = true; if (rbtn_active.Che

温馨提示

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

评论

0/150

提交评论