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

下载本文档

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

文档简介

1、学生姓名专业学号指导教师学院本科生专业方向应用实训 科研训练FTP客户端与服务器的设计与实现Design and implementation of FTP client and server蒲 凤软件工程140521221高培成尹大力祝勇计算机科学技术二一七年七月起止周17 19周数3实习地点计算机学院专业实验室选题自选科研训练目的:实训的目的是使学生在学完专业课程后,学会并掌握软件开发的基本技能 , 巩固已学的知识,补充未学的但又必要的内容。通过了解并实践常见的软件 开 发过程进行系统开发,并且使用相关语言进行专业方向的系统实现。科研训练要求:1. 了解实际项目分析、设计、开发、测试、部署

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

3、。指导教师评语:成绩:指导教师/带队教师(签字)2017年7月日摘要随着互联网技术的飞速发展,信息共享的时代己经到来。在实现数据传输与信息共享的诸多方式中,FTP无疑是应用最广的一种方 式。FTP协议是计算 机网 络中的应用层协议,提供了可靠的文件传输功能,并且具有跨平台特性,两个不同类型的操作系统只要都支持 FTP协议就可以进行文件传输工作。因此, 探讨 文件传输协议(FTP)的内容和工作原理,分析FI卩客户端与服务器的连接 过程及 FI卩请求与应答工作模式,设计C/S架构下的FTP系统的实现方案,在.NET平台 利用C#语言搭建起FTP系统的窗体界面,并且使 用.NET类库实现了 文件上传

4、、 删除和修改等功能。关键词:FTP协议 服务器 客户端.NETAbstractWith the rapid developme nt of In ternet tech no logy, the era of in formatio n sharing has arrived. In many ways of realizing data transmission and information sharing, FTP is undoubtedly the most widely used method. FTP protocol is an application layer proto

5、col in computer network, provides a reliable file transfer fun cti on, and has the characteristics of cross platform, two differe nttypes of operat ing system as long as can support the FTP protocol for file transfer work. Therefore, to explore the file transfer protocol (FTP) contentand working pri

6、nciple, analysis of the connection processand the FIP request and responsemode FIP the client and the server implementation schemeof FTP system design under the C/S framework, the window body interface.NET platform using C# Ianguageto build FTP system, and use the.NET Library to achievethe file uplo

7、ad, delete and modify fun cti ons.Keywords:FTPprotocol;server;clie nt;. net目录摘要IABSTRACTII第一章绪论11.1研究背景11.2国内外研究现状21.3课程设计主要研究内容和架构2第二章需求分析32.1需求分析32.2功能列表 32.3系统权限3第三章技术方案43.1 .NET架构平台43.1.1 .NET的体系结构43.1.2 .NET 框架的特色43.2开发工具53.2.1 Visual Studio 5第四章总体设计64.1系统体系结构模型64.2 FTP系统模型64.3系统工作流程设计74.4系统功能模

8、块介绍84.2.1登陆与注销84.2.2模式选择94.2.3文件管理94.2.4目录管理9第五章详细设计105.1登陆与注销105.2文件管理115.2.1文件下载115.2.2 文件上传12523 文件重命名 12524文件删除135.4目录管理135.4.1目录显示135.4.2目录切换145.4.3目录添加155.4.4目录重命名 155.4.5目录删除16第六章 软件测试 176.1测试方法176.2测试用例176.3测试过程及结果 18第七章总结20参考文献21附录22第一章绪论网络的首要目的就是实现信息共享,文件传输是其中重要的一个方面,随 着In ternet的迅猛发展,信息数据

9、的传输量大大增加,数据的网络传输显得越来越重要。利用FTP( File Transfer Protocol)文件传输协议来实现远程文件的传输 是软件设计常用的方法。FTP是基于客户端/服务器结构的文件传输协议,它相 对成熟,并有着改进和增强 FTP文件传输协议的相关协议支持。目前FTP客户端软件很多,主要分为3类:第一类是传统的DOS环境下的FTP操作,由于其 效率低和操作繁琐,目前使用很少;第二类是图形化界面的FTP软件,目前主要有WS-FTP、CuteFTP等;第三类是浏览器,同样支持 FTP协议,但速度相对 于专业软件来说较慢。设计并实现了FTP服务器/客户端,能实现连接、下载、上传等功

10、能,操作简便、交互性强。1.1研究背景互联网技术的飞速发展,推动了全世界范围内资料信息的传输与共享,深 刻地改变了人们的工作和生活方式。FTP技术作为文件传输的重要手段,己经 得到了广泛的使用。通常人们可以使用电子邮箱、即时通讯客户端(例如QQ和FTP客户端来进行资料的传输。在这几种常用的方式中,电子邮箱必须以附件的形式来传输文件,并且对文件大小有限制;即时通讯客户端中的文件传输一般 要求用户双方必须在线,如今虽然增加了离线传输的功能,但该功能本质上是通过服务器暂时保存用户文件实现的,与FTP原理类似。此外通过这两种方式传输文件资料有一个共同的缺陷:需要传输的文件无法以目录系统的形式呈现给 用

11、户。所以,FTP文件传输系统有其无可替代的优势,在 文件传输领域始终占 据重要地位,因此对其进行的研究颇有现实意义。FTP之所以流行于全世界很大程度归功于匿名FTP使用及推厂。用户不需要注册就可以通过匿名 FTP登录到远程主机来获取所需的文件。所以,每一位用户都可以在匿名FTP主机上获取所需的文件,匿名FTP为世界各个角落的人提供了一条通往巨大资源库的道路,人们可以在资源库中自由下载所需要的资源,并且这个资源库还在不断地扩充中。另外在 In ternet上,匿名FTP是软件 分发的主要方式,许多程序通过匿名FTP分布,每一个程序开发者都可以搭建FTP服务器来发布软件。早期的FTP文件传输系统以

12、命令行的形式呈现,发展至今涌现出很多图形 界面的FTP应用软件,比较常见的有 F1ashFXP CuteFTP, Serv-U。这些FTP 软件都采用C/S架构,即包含客户端和服务器两个部分,基于FTP协议实现信息交互。用户通过客户端进行基本的上传下载操作,实现资源文件的共享。然而,绝大部分网络浏览器提供的文件下载器并不具备文件资源管理功能或管理起来很不方便,另外,市面上大部分FTP软件都是收费、不开源的并且会出现功能冗余、配置繁琐的情况。所以自主设计一个客户端与服务器两者兼具并且具备良好人机交互界面的FTP文件传输系统就显得尤为重要。1.2国内外研究现状1971年,第一个FTP的RFC (R

13、equest For Comments是一系列以编号排 定的文件,包含了关于In ternet几乎所有重要的文字资料)由AKBhushan提 出,同一时期由MIT和Havard实现,即RFC114在随后的十几年中,FTP协议 的官方文档历经数次修订,直到1985年,一个作用至今的FTP官方文档 RFC959可世。如今所有关于FTP的研究与应用都是基于该文档的。FTP服务有 一个重要的特点就是其实现并不局限于某个平台,在Windows, DOS, UNIX平台下均可搭建FTP客户端及服务器并实现互联互通。自FTP协议的第一个RFC版本发布以来,历经数十年的发展,海内外涌现出来众多优秀的支持FTP

14、协议的软件。国外的软件有:Serv-U , F1ashFXP , CuteFTP等;国内的软件有:迅雷、 网络蚂蚁、ChinaFTP等。其中国外的软件大部分需要 付费使用,国内几乎没有 FTP开源软件,软件质量参差不齐,难以保证安全性。虽然目前大部分操作系统都自带FTP功能,但是自带的FTP功能都是基于命令行进 行操作,这就需要 用户熟记相关操作指令,不够人性化,用户使用起来相当不便,所以很有必要设计一个开源的、功能完善的、具有友好人机交互界面的FTP文件传输系统。1.3课程设计主要研究内容和架构本课题是在Visual Studio 2013开发环境下开发FTP客户端以及服务器。基 于.net

15、平台和标准FTP协议开发,主要涉及到多线程网络编程的诸多技术,比 如网络I/O,线程同步等技术。本课题设计的FTP客户端有其特色功能:支持文件传输,同时具备良好的人机交互界面;设计的FTP服务器采用了多线程技术, 使得服务器能够从容应对高并发访问。本课题主要工作是在.net环境下开发网络应用程序,在开发 的过程中所做 的工作如下:(1) 熟悉计算机网络,TCP/IP模型以及FTP标准协议。(2) 熟悉Visual Studio2013开发工具和C#编程语言。(3) 研究FtpWebRequest FtpWebResponse类,熟练掌握编写网络应用程序 的方法。(4) 研究基于流的I/O操作模

16、式和多线程编程技术并将其应用于所开发的程 序。(5) 设计并实现FTP客户端/服务器,实现了预期的功能,解决了高并发访问的问题第二章需求分析2.1需求分析作为一个实用的FTP系统,基本功能必不可少,包括用户登 录以及用户信 息验证,此外最重要就是文件上传与下载。用户在使用FTP客户端时,可以选择主动模式或者被动模式连接服务器。可以选择验证用户名与密码或者匿名登陆。服务器会验证用户名与密码,判断用户能否登上服务器,划分用户的权限。这样可以保障安全性。用户使用FTP客户端程序主要为访问服务器,获取或者上传服务器文件。 本文FTP系统采用C/S模式完成文件上传与下载,服务器与客户端分别完成数 据连接

17、时的信息发送与响应返回功能,两者配合使用,使得FTP系统具有较强的实用性。2.2功能列表表2-1功能列表功能分组功能名功能简要说明登录与注销登录服务器要核对用户名和密码,判断是否为匿名用户,显示不 同功能模块退出服务器与服务器断开连接,功能模块不可用模式选择选择连接模式使用主动连接模式或者被动连接模式选择传输类型选择Bin ary或者ASCII数据传输类型目录管理显示列表将服务器的文件资源显示在列表中跳转目录输入路径改变当前目录新建目录在服务器端新建文件夹,需要用户实名登陆重命名文件夹将服务器文件夹重命名,需要用户实名登陆文件管理上传文件将本地文件上传至服务器,需要用户实名登陆下载文件将服务器

18、文件下载至本地删除文件将服务器文件从服务 器删除,需要用户实名登陆重命名文件将服务器文件重命名,需要用户实名登陆2.3系统权限普通用户登陆后拥有所有功能。匿名用户匿名登陆后只拥有下载功能以及目录跳转要求第三章技术方案3.1 .NET架构平台.NET 是 Microsoft XML Web services 平台,XML Web services 的应用程序 是通过In ternet进行通讯和共享数据,而与操作系统、设备和编程语言无关。Microsoft .NET平台也正提供了创建 XML Web services功能并将相关服务集成 在一起,使用户可无缝地使用。3.1.1 .NET的体系结构A

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

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

21、tensibleMarkup Language,延伸标注语言)及SOAP (Simple Object Access Protocol ,简单对象存取协议) 等标准通讯协议,将各种由不同环境所组成的应用程序及组件整合在一起工作。2、松散的整合组件。现阶段,要建立多层且功能可扩充的系统,其架构 非常复杂,而且工具很少,而.NET Framework不需要很严谨的定义每个组件的 结构即可很轻松的整合,提高程序的扩展性。3、支持多种程序语言。许多程序设计者会使用多种语言来开发他们的解决方案,这是因为每种语言都有它的长处,.NET Framework把这些语言整合起来,可以让开发人员使用不同的程序语言

22、来开发解决方案:4、提高程序的开发效率。利用.NET框架的自动内存管理,以及丰富的 控件等特色,可使程序设计人员减少写程序会发生的问题,专心于撰写企业处理数据的规则,从而,缩短项目的开发时间。5、 完善的数据安全。目前因特网最受大家注目的是它的安全性,.NET Framework在设计安全模型时将所有的数据与程序代码做完善的安全防护。6、 可用操作系统的服务。Windows提供了比其它作业平台更丰富的服务 及资源,.NETFramework将这些操作系统所提供的功 能包装起来,以更简单 的方式提供给程序设计者使用。3.2开发工具3.2.1 Visual StudioMicrosoft Visu

23、al Studio (简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部 分工具,如UMLX具、代码管控工具、集成开发环境(IDE)等等。所写的目标 代 码适用于微软支持的所有平台,包括 MicrosoftWindows、WindowsMobile、Windows CE、.NETFramework、.NET Compact Framework 和 Microsoft Silverlight 及 Windows Phona Visual Studio 是目前最流行的 Windows 平台应用程序的集成开发环境。最新版本为Visua

24、l Studio 2017版本,基于.NET Framework 4.5.2。第四章总体设计4.1系统体系结构模型开发FTP服务器/客户端软件必须遵循FTP的工作模式,FTP独特的优势在 于它在两台通信主机之间使用了两条 TCP连接,一条用于数据传送,一条用于控制信息的传送。这种将命令和数据分开传送的思想大大提高FTP工作的效率。图4-1给出本系统的体系结构模型。图4-1 FTP体系结构模型客户端与服务器建立连接是典型的“三次握手”,过程如下:客户端发送请求与服务器控制连接的协议包;服务器同意建立连接,发送应答;最后,客户端 向服务器发送确认,至此,连接建立。与此同时,FTP要求客户向服务器提

25、供用户名和口令,一旦连接成功一个或多个文本或图像二进制文件都能被安全传送,在整个交互过程中,控制连接始终处于连接状态,数据连接在每一次文件传送时先打开后关闭,FTP依靠可靠传输协议TCP不必担心可靠性和连接的管 理。4.2 FTP系统模型FTP ( File Transfer Protocol)文件传送协议,位于 OSI体系中的应用层, 是一个用于从一台主机向另一台主机传送文件的协议,基于C/S架构。用户通过FTP客户端连接到在某个远程主机上的 FTP服务器。用户通过FTP客户端向服务 器程发送指令,服务器根据指令的内容执行相关操作,最后将结果返回给 客户端例如,用户向FTP服务器发送文件下载

26、命令,服务器收到该命令后 将指定文件传送给客户端,并将执行结果返回给客户端。FTP系统和其他C/S系统的不同之处在于它在 客户端和服务器之间同 时建 立了两条连接来实现文件的传输,分别是控制连接和数据连接。控制连接用于客户端和服务器之间的命令和响应的传递;数据连接则用于传送数据信息。当用户通过FTP客户端向服务器发起一个会话的时候,客户端会通过熟知 端口 21与FTP服务器建立一个 TCP连接,即控制连接。客户端使用此连接向 FTP服务器发送所有 FTP命令并读取所有应答。而对于大 批量的数据,如数据 文件或详细目录列表,FTP系统会建立一个独立的数据连 接去传送相关数据。 以主动传输方式为例

27、,客户端使用PORT命令向服务器发送地址和端口,服务器图4-2 FTP工作模型示意图4.3系统工作流程设计FTP客户端的工作流程设计如下:(1) 用户输入用户名和密码进行登录操作。(2) 连接FTP服务器成功后发送PORTE PASV命令选择传输模式,处理 TYPE命令确定数据传输方式。(3) 发送LIST命令通知服务器将目录列表 发送给客户端。(4) 服务器通过数据通道将远程目录信息发送给客户端,客户端对其进行解 析并显示到对应的服务器目录列表框中。(5) 通过控制连接发送相应的命令进行文件的下载和上传、目录的下载和上 传以及目录的新建或删除等操作。(6) 启动下载或上传线程执行文件的下载和

28、上传任务(7) 使用结束,断开与FTP服务器的连接。4.4系统功能模块介绍按照需求分析中的功能列表,以及对每个模块的功能分析,可以整理得出 系统的功能模块总体结构如图4-4所示:FTP系 统上传文件删 除 文 件rH重命名新 建 目 录选择数据类型登陆与注销-L-退出服务器跳 转 目 录删 除 目 录目录管理显示目录重命名目录图4-4系统功能模块总体结构图4.2.1登陆与注销登陆时,用户可以选择实名登陆或者匿名登陆。不同的登陆方式将显示不同的功能界面,从而达到动态的赋予用户不同的权限,增加了服务器的安全 性。实 名用户可以使用FTP服务器的所有功能。匿名用户只能下载服务器上的文件。注销将断开客

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

30、表。目录管理中包括显示列表、跳转目录、删除目录、重命名目录,其中删除目录和重命名目录需要用户实名登陆才可以使用。第五章详细设计FTP客户端实现的主要功能分为三类:登录与注销、文件管理、目录管理5.1登陆与注销客户端首先通过NetworkCredential类实例化对象,通过它我们可以在网 络中提供一个凭证,只有获得该凭证的用户才能访问相应的服务的权限。客 户 端向服务器发送“ USER命令,服务器调用CommandUser(函数检查用户名命 令是否正确。该命令正确后,服务器端向客户端发送响应代码,进入下一步,即检验密码。客户端向服务器发送“ PASS命令,服务器调用CommandPasswor

31、d函数获得相应的用户密码,进入 TryGetValue()函数,检验 用户名和密码是否正确。如果用户名、密码均正确,发送响应代码“ 230 User成功登陆”;女果密码错误,发送响应代码“ 530密码错误”;女果用户名或者 密码其中一个错误,则发送响应代码“ 530用户名或密码错误”;否则则发送响 应代码“ 501 PASS命令语法错误”。客户端的注销功能则更容易实现。客户端通过命令通道向服务器发送“QUIT命令,服务器响应该命令,调用Close()函数,关闭TCP连接并释放与其关联的所有资源。如图5-2所示5.2文件管理文件管理是FTP系统中最重要的功能之一,它分为文件下载、文件上传、 文件

32、重命名和文件删除。5.2.1文件下载文件下载的原理就是在本地新建同名文件并在数据通道接收数据,然后将 数据写入文件。客户端文件下载的过程介绍如下:选中需下载的文件,点击下载按钮触发btndownload_Click()消息响应函数,在消息响应函数里客户端通过 FtpWebRequest类实例化对象,调用 CreateFtpWebRequest()函数向服务器发送请求,发送“ RETR命令,服务器调 用CommandRETR()函数发送响应代码“150”到客户端,表示服务器文件状态 良好,将要打开数据连接传输文件。客户端通过FtpWebRespo nse类实例化对象,调用GetFtpRespon

33、se ()函数获取服务器响应信息,读取 response对象的状态 码和状态描述信息。在数据通道打开后,多次调用文件流函数在数据通道接收数据。之所以要多次接收数据是因为文件并不是一次性传输过来的,而是每次 接收8196比特的数据。客户端每次从 数据通道获取一部分数据并将其追写到己创建的522文件上传文件上传的原理是读取本地文件数据,将数据通过数据通道发送给服务器,服务器再将数据写入远程文件。客户端文件上传流程如图4.7所示。选中需上 传的文件,点击上传按钮触发 btnUpload_Click()消息响应函数,在消息响应 函数里客户端通过FtpWebRequest类实例化对象,调用 Create

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

35、重命名按钮触 发btn_rename_Click()消息响应函数,在消息响应函数里客户端通过FtpWebRequest类实例化对象,调用CreateFtpWebRequest()函数向服务器发送 请求,发送“ RNFR命令,服务器调用Comma nd RNFR ()函数发送响应代码 “250”到客户端,表示服务器文件存 在且接受重命名。发送“ RNTO命令,服 务器调用CommandRNTO()数发送响应代码“ 250”到客户端,表示服务器文件 已完成重命名。客户端通过 FtpWebResp on se类实例化对象,调用GetFtpResponse ()函数获取服务器响应信息,读取 respo

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

37、se ()函数获取服务器响应信息,读取 response 对象的状态码和状态描述信息,调用ShowFtpFileAndDirectory()函数,显示删除后的文件信息。5.4目录管理5.4.1目录显示在成功登录之后,要完成文件的传输,首先要获得客户端和服务器指定目 录的内容,然后才能进行相应文件的上传或下载。客户端通过FtpWebRequest类实例化对象,调用CreateFtpWebRequest()函数向服务器发送请求,发送“LIST”命令,服务器调用CommandLIST()函数获取文件目录列表,开启ASCII数据传输方式,检验文件目录是否正确。该命令正确后,服务器端向客户端发送响应代码

38、以及文件信息。客户端通过FtpWebRespo nse类实例化对象,调用GetFtpResponse ()函数获取服务器响应信息,读取 response对象的状态 码和状态描述信息,若出现异常,贝U输出错误提示信息;反之,贝U将信息返回 到界面控件lstbxFtpState中。读取网络流数据,处理并显示文件目录列表。通过返回信息,截取相应字符串判断是否是文件或者文件目录。如果是文件目 录,在文件名之前加上“目录”,以便用户能够更清楚的分辨是否是文件或者 文件目录。循环设置文件格式,调用PadRight()函数设置左对齐,将文件信息返回到界面控件lstbxFtpResources中,用户便可以看

39、到远程服务器中的文件 目录。流程图如图5-5所示。开始客户端FtpWebRequ类实客户端FtpWebRequ类实例化例化客户端调用CreateFtpWebReau函数向服务器发送LIS命令件目录是正确N显示信息加上目录,调用PadRighti数,对齐目录信服务器调用CommandLIST数返回文件目录信息录11J是否是文件r调用PadRigt数,对齐文件 信息返回异常,提示错误信 息结束文件信息返回至ListFtpResource结束图5-5FTP客户端列出远程目录流程图542目录切换FTP客户端目录切换流程图如图4-6所示:图5-6目录切换流程图在成功登录之后,输入待切换目录后,点解跳转按

40、钮,触发btn_goto_Click() 事件。客户端通过 FtpWebRequest类实例化对象,调用CreateFtpWebRequest()函数向服务器发送请求,发送“ CWD命令,服务器调用CommandCWD()函数检验文件跳转目录是否正确。该 命令正确后,客户端再 发送“ LIST”命令至服务器,服务器端向客户端发送响应代码以及文件信息。客户端通过 FtpWebResponse类实例化对象,调用 GetFtpResponse ()函数获取 服务器响应信息,读取response对象的状态码和状态描述信息,若出现异常, 则输出错误提示信息;反之调用ShowFtpFileA ndDire

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

42、状态描述信息,若出现异常,则输出错误 提示信息;反之调用ShowFtpFileA ndDirectory() 函数,显示添加后的目录文 件信息。流程图如图5-7所示。图5-7目录添加流程图544目录重命名客户端通过IstbxFtpResources选中需重命名的目录,点击重命名按钮触 发btn_rename_CIick()消息响应函数,在消息响应函数里客户端通过FtpWebRequest类实例化对象,调用CreateFtpWebRequest()函数向服务器发送 请求,发送“ RNFR命令,服务器调用Comma nd RNFR ()函数发送响应代码 “250”到客户端,表示服务器文件存 在且接

43、受重命名。发送“ RNTO命令,服 务器调用CommandRNTO)数发送响应代码“ 250”到客户端,表示服务器文件 已完成重命名。客户端通过 FtpWebResp on se类实例化对象,调用GetFtpResponse ()函数获取服务器响应信息,读取 response对象的状态码和 状态描述信息,调用ShowFtpFileAndDirectory() 函数,显示重命名后的目录 信息。5.4.5目录删除客户端通过lstbxFtpResources选中需删除的文件,点击删除按钮触发 btnDelete_Click ()消息响应函数,在消息响应函数里客户端通过FtpWebRequest类实例

44、化对象,调用CreateFtpWebRequest()函数向服务器发送 请求,发送“ DELE命令,服务器调用CommandDELE函数发送响应代码“250”到客户端,表示服务器文件已 删除。客户端通过FtpWebResponse类实 例化对象,调用GetFtpResponse ()函数获取服务器响应信息,读取 response 对象的状态码和状态描述信息,调用ShowFtpFileAndDirectory() 函数,显示 删除后的目录信息。第六章软件测试软件产品的最终目的是为了满足客户需求,我们以客户需求作为评判软件质 量的标准,并给出了软件缺陷的具体含 义:软件未达到客户需求的功能和性能;

45、软 件超出了客户需求的范围;软件中出现了客户需求不能容忍的错误;软件的使用 未能符合客户的习惯和工作环境。软件测试是假定存在软件缺陷,因而想通过检测来发现尽可能多的软件缺陷过程。软件测试基于下面三个理念:测试是为了发现软件中的缺陷而执行软件的过程;好的测试方案是尽可能发现迄今为止尚未发 现的缺陷的测试方案;成功的测试是发 现了迄今为止尚未发现的缺陷。而软件测 试的关键是测试用例的设计,测试用例测试是测试的重要环节,设计测试用例的 目标是选用少量高效的数据(测试用例)尽可能多地发现软件中的问题。设计 方 法可以分成两类:白盒测试和黑盒测试。白盒测试:把程序看成是装在一只透明 的盒子里,测试者完全

46、了解程序的结 构和处理过程。白盒测试的具体方法主要是逻辑覆盖 ,由于覆盖的程度不同,逻 辑覆盖从弱到强又分为语句覆盖、判定覆盖、条件覆盖、条件组合覆盖和路径覆盖等。黑盒测试:把程序看成是装在一只不透 明的盒子里,测试者完全不了解程序 的结构和处理过程。黑盒测试根据规格说明书规定的功能来设计测试用例,检査程序的功能是否符合规格说明的要求。黑盒测试具体有等价类划分、边界值分析、错误推测和因果图等方法。6.1测试方法本次测试为功能测试。功能测试:即黑盒测试,测试人员在了解被测试目标的功能规格、高层设 计和操作规范的基础上,测试被测试系统的可用性。6.2测试用例F面以部分功能为例,列出部分功能所编写的

47、测试用例,如下表6-1所示表6-1功能测试用例 表输入/动作期望结果实际情况通过/失败登陆输入错误的服务器地址客户端显示连接错误地址客户端显示连接 错误地址通过登陆输入正确的用户名、错 误的密码服务器返回密码错误服务器返回密码 错误通过跳转输入正确的文件路径成功跳转到路 径成功跳转到路径通过跳转输入错误的文件路径客户端弹出窗 口提示文件不 存在客户端弹出窗口 提示文件不存在通过下载下载不存在的服务器文 件显示文件不存在并刷新目录显示文件不存在 并刷新目录通过下载下载存在的服务器文件下载文件至本 地并显示成功 下载下载文件至本地 并显示成功下载通过重命名重命名文件,文件名已 存在客户端提示文件名

48、已存在客户端提示文件 名已存在通过重命名重命名文件,文件名不重复成功重命名并刷新目录成功重命名并刷 新目录通过上传上传不存在本地文件至 服务器客户端弹出窗 口显示文件不 存在客户端弹出窗口 显示文件不存在通过上传上传存在本地文件至服 务器,文件名不重复客户端显示上 传成功,并刷 新目录客户端显示上传 成功,并刷新目 录通过6.3测试过程及结果根据需求分析,FTP系统需要达到的功能为1. 登陆与注销2. 模式选择3. 目录管理4. 文件管理对各项功能的详细测试情况如下表6-2所示表6-2详细测试测试模块测试功能测试结果登录与注销登录服务器通过退出服务器通过模式选择选择连接模式通过选择传输类型通过

49、目录管理显示列表通过跳转目录通过新建目录通过重命名文件夹通过文件管理上传文件通过下载文件通过删除文件通过重命名文件通过登录与注销登录服务器通过退出服务器通过模式选择选择连接模式通过第七章总结在当前的信息技术和网络技术迅速发展的今天,FTP协议在网络传输中充 当着重要的角色,它也是目前网络传输信息的主要工具。只要对于FTP进行合 理有效的使用,那么就可以使得每一个FTP站点的各种资源得到很好共享和 利 用。另外企业在进步和发展过程中,FTP协议在网络传输以及信息传递过程中,不仅具有很高的传输速度,同时也具有很好的安全可靠性,因此使用和开发FTP协议是一种趋势,同时也具有很高的应用价值。伴随 着科

50、学技术的不断发 展,基于 FTP协议之下的网络传输也将会得到更好的创新与发展,其在网络安全和传输中也将发挥着越来越重要的作用。在.NET平台下,利用基础类库,进行二次封装,实现了 FTP客户端和服务 器软件。实现过程中也遇到了一些问题,经过思考总结了以下注意点:要详细了解NET平台FtpWebRequest和FtpWebResponse类的成员及方 法,在实现过程中,Method的方法起到了至关重要的作用,使开发变得便捷。(2) 开发网络程序要注意异常的捕获,由于网络经常不稳定,导致服务器不能完全正确地响应客户端的请求和命令,随时捕获异常能使客户端运行起来更加安全流畅。(3) 在功能实现的过程

51、中要注意对路径的处理,虽然只是简单的字符串操作,但是一旦路径出现错误,客户端就无法获得服务器正确的响应,便不能实现预 期的功能。在In ternet /LAN网络环境下,开发与设计了 FTP客户端/服务器。实现了 FTP文件传输和操作基本和常用的功能并采用可视化界面,用户使用简单方便。 传输文件的形式为文本文件和二进制文件。客户端与服务器端具有应答消息。遵循FTP协议,完成其连接命令,参数设置命令和服务请求命令。用户端的命令只需完成最基本的功能,其他的功能作为可选项。采用面向对象,消息驱 动 及多线程等软件新技术实现程序中的功能。同时,实现的FTP系统还存在一些问题,它虽然具备了一些基本的功能

52、,也可以正确运行,但是还需要新功能的扩展,包括断点续传、服务器内容实时更新等,这些功能会给用户带来更多方便,这也是后续的研究方向。参考文献1 顾彤辰 FTP客户端及服务器系统的设计与实现D.南京邮电大学,2016.2 李俊丽基于MFC的FTP客户端的实现J.山西电子技术,2016,(02):43-45.3孟祥成.基于.NET的FTP客户端设计与实现J.4龚俐,毛晓蛟.基于C#勺FT客户端的实现J.95+134.詹百灵.基于C#勺FTP客户端软件设计J. 刘萍,张继刚,滕桂明.FTP客户端软件的实现软件导刊,2015,(06):123-124.电脑编程技巧与维护,2010,(24):94-漳州职

53、业技术学院学报,2009,(02):10-14.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 陈倩.嵌入式F

54、TP服务器的设计与实现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 FtpWebRequestCreateFtpWebRequest(stri ngjri, stri ng requestMethod)FtpWebRequestrequest = (FtpWebRequest)FtpWebRequest.Create(uri);request.Crede ntials= n etworkCrede ntial;request.KeepAlive = true;if(rbtn_bi nary.Checked=true) _request.UseBi nary= true;if(rbt n_ascll.Checked = true) _request.UseBi nary= false;if (rbt

温馨提示

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

评论

0/150

提交评论