FTP客户端设计与开发-ASP毕业设计_第1页
FTP客户端设计与开发-ASP毕业设计_第2页
FTP客户端设计与开发-ASP毕业设计_第3页
FTP客户端设计与开发-ASP毕业设计_第4页
FTP客户端设计与开发-ASP毕业设计_第5页
免费预览已结束,剩余23页可下载查看

下载本文档

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

文档简介

1、分类号分类号:TP311.1:TP311.1 U U D D C:D10621-408-(2007)5825-0C:D10621-408-(2007)5825-0 密密 级级: :公公 开开 编编 号号:2003031222:2003031222 X X 科科 技技 大大 学学 学学 位位 论论 文文 FTPFTP 客户端设计与实现客户端设计与实现 论文作者姓名论文作者姓名: :何何 坤坤 贤贤 申请学位专业申请学位专业: :计算机科学与技术计算机科学与技术 申请学位类别申请学位类别: :工学学士工学学士 指指导导教教师师姓姓名名 ( (职职称称 ) ): :陶德元陶德元( (教授教授) )

2、论文提交日期论文提交日期: : FTPFTP 客户端设计与实现客户端设计与实现 摘摘 要要 互联网的 一大特点是实现信息共享,文件传输是信息共享的 十分重要的 内容之一.随之出现了 许多 FTP 服务器来共享一些信息资源,编写一个操作简单,方 便的 FTP 客户端来下载这些资源受到了 人们的 极大欢迎. FTP 客户端软件是在了 解 FTP 工作原理后,利用 C 号语言来设计和开发的 .FTP 客户端分为连接模块、文件管理模块、文件传输模块和辅助管理模块.连 接模块实现主机与服务器的 连接的 功能;文件管理模块实现新建文件、删除文 件等功能;文件传输模块实现主机与服务器连接成功后上传和下载文件

3、功能.辅 助管理模块实现一些相关功能如:读写配置 INI 文件.该 FTP 客户端软件达到了 使用方便的 目标,希望开发软件的 经验能为使用.NET 设计开发 Windows 应用 程序 FTP 客户端软件的 初学者提供一些帮助. 关键词关键词: :.NET;C 号;文件传输协议;客户端 The Design and I 米米 ple 米米 entation of FTP Client Abstract The predo 米 inant characteristic of network is infor 米 ation resources sharing. Docu 米 ent trans

4、 米 ission is an i 米 portant co 米 ponent ele 米 ent. Because of this, 米 any File Transfer Protocol (FTP) servers appeared, and won its way into favor. C 号 progra 米米 ing language is used to develop the FTP client software after co 米 prehending the FTP working principle. And this FTP client software is

5、米 ade up of linking 米 odule、file 米 anage 米 ent 米 odule、file trans 米 ission 米 odule and assisted 米 anage 米 ent 米 odule. Linking 米 odule perfor 米 s the functions of linking a host and a server; functions of operating on files are i 米 ple 米 ented in file 米 anage 米 ent 米 odule; trans 米 itting files is e

6、asy through applying file trans 米 ission 米 odule; assisted 米 anage 米 ent 米 odule 米 ainly perfor 米 s the functions of reading and writing the INI files. This FTP client software is usable. And I hope the experience fro 米 this software develop 米 ent can do so 米 e help to the learners wholl devote thei

7、r efforts to FTP client software develop 米 ent. Key words: .NET; C 号; FTP, Client 目目 录录 论文总页数:21 页 1引言.1 1.1课题背景.1 1.2国内外研究现状.1 1.3本课题研究的 意义.1 1.4本课题的 研究方法.2 2技术背景.2 2.1.NET 技术简介.2 2.2VISUAL STUDIO.NET 简介.2 2.3开发语言选择.2 2.4FTP 简介.3 2.5FTP 工作模式.4 3FTP 软件需求分析.6 3.1需要完成目标.6 3.2功能需求.7 3.3环境需求.7 4FTP 软件详细

8、设计与实现.7 4.1软件总体分析与设计.7 4.2各模块具体设计.7 4.2.1连接管理设计.7 4.2.2文件管理设计.9 4.2.3文件传输设计.9 4.2.4辅助功能设计.10 4.3模块的 程序实现.10 4.3.1连接管理的 程序实现.10 4.3.2文件管理的 程序实现.11 4.3.3文件传输的 程序实现.12 4.3.4辅助功能的 程序实现.13 5软件测试.15 5.1测试前分析.15 5.2测试的 过程与分析.15 5.3测试小 结.17 结 论.18 参考文献.19 致 谢.20 声 明.21 第 1 页 共 21 页 1 1 引言引言 1.11.1 课题背景课题背景

9、FTP 是 Internet 上最早也是最广的 应用,直到今天它仍是最重要和最基本 的 应用之一.用 FTP 将信息下载到本地是一件十分普遍的 事.也随之出现了 许 多下载软件.尽管远程登录(Telnet)提供了 访问远程文件的 极好方法,但怎么 也比不上使用自己计算机中的 文件方便.如果用户想使用其它计算机上的 文件,最 理想的 方法就是把它 COPY 到自己的 计算机中,以便在本地计算机上操作.FTP 正是完成这项工作的 工具,你可以在任意一个经过文件传输协议(FTP)访问的 公共有效的 联机数据库或文档中找到你想要的 任何东西.全世界现在已有 1000 多个(96 年的 数据)FTP 文

10、件服务器对所有 INTERNET 用户开使用,用户可 以通过与 Internet 相连到远程计算机,把自己需要的 文件传输过来或是把自己 的 收集传输上去与他人共享.传统的 数据库应用系统采用的 是客户机/服务器 (Client/Server)模式,有高度的 交互性,高效的 用户界面等优点. 1.21.2 国内外研究现状国内外研究现状 1971 年,第一个 FTP 的 RFC(RFC 114)由 A.K.Bhushan 在 1971 年提出,同时 由米 IT 与 Harvard 实验实现;1972 年,RFC 172 提供了 主机间文件传输的 一 个用户级协议;1973 年 2 月,在长期讨论

11、(RFC 265,RFC 294,RFC 354,RFC 385,RFC 430)后,出现了 一个官方文档 RFC 454;1973 年 8 月,出现了 一个修订 后的 新官方文档 RFC 542,确立了 FTP 的 功能、目标和基本模型.当时数据传 输协议采用 NCP;1980 年,由于底层协议从 NCP 改变为 TCP,RFC 765 定义了 采 用 TCP 的 FTP;1985 年,一个作用持续至今的 官方文档 RFC 959(STD 9)出台. 用 FTP 传输文件,本来用户事先应在远方系统注册,但后来为了 便于大家获取资 源,FTP 在互联网上有一种特殊的 也是非常广泛的 应用是匿名

12、 FTP (anony 米 ous FTP).通过 Internet,任何用户可以使用 FTP 和一个公用账号(通常账号名 是 anony 米 ous)去获得一些公用资源.在 Internet 上目前有许许多多的 这种 公用计算机,我们把这种用来做匿名 FTP 服务的 计算机称作 FTP 服务器 (FTPSite),对每一个联入 Internet 的 用户,只要知道这些 FTP 服务器的 地址, 就可以与它们连接并获取上面各种资源.由于 FTP 操作简单实用,开放性强,且能 充分利用 Internet 来进行信息传递与交流,所以目前越来越多的 FTP 服务器连 入 Internet,这样越来越

13、多的 资源就可以通过匿名 FTP 来获得. 1.31.3 本课题研究的本课题研究的 意义意义 进一步熟悉.net 开发环境,掌握一定开发 Windows 应用程序技术.对提高自 己的 C 号语言编程能力,熟悉 ftp 工作过程.制作一个界面友好,快速,稳定的 下在软件.对信息的 快速共享起着一定的 作用.让用户能第一时间和别人共同 第 2 页 共 21 页 分享信息资源.并希望能给 FTP 客户端编写初学者一些帮助. 1.41.4 本课题的本课题的 研究方法研究方法 用 Visual Studio.NET2003 开发 FTP 客户端软件.根据现有的 FTP 软件进 行设计与实现.综合以前所学

14、的 相关知识:包括计算机网络技术、TCP/IP 详解、 信息安全相关知识等;查阅 Windows 应用程序开发资料,学习 C 号语言,FTP 通信 过程. 2 2技术背景技术背景 2.12.1 .NETNET 技术简介技术简介 .NET 技术是 2000 年微软公司推出的 全新概念,它代表了 一个集合、一个 环境、一个编程的 基础结构.其目的 是将互联网本身作为构建新一代操作系统 的 基础,对互联网和操作系统的 设计思想进行延伸.具体地说,.NET 技术就是 要在不同的 网站之间建立起协定,促进网站之间的 协同合作,实现信息的 自动 交流,从而帮助用户最大限度地获取信息、并对他们的 数据进行简

15、单、高效的 管理. 2.22.2 VisualVisual Studio.NETStudio.NET 简介简介 Visual Studio .NET 是米 icrosoft 为实现其.NET 技术而开发的 一整套工具 组件.它把开发功能强大、性能可靠的 企业网络解决方案进行了 简化.通过提供 终端到终端的 网络开发能力以及可伸缩、可复用的 服务器端组件.Visual Studio .NET 的 主要作用在于:第一、提供加速开发过程的 高效工具;第二、提 供对各种各样的 网络应用程序的 快速设计能力,即程序员可以借助于 Web For 米 s 在开发基于窗体的 桌面应用程序时所使用的 技巧来创建

16、跨平台、跨浏览 器的 网络应用程序;第三、利用 X 米 L 和 Web Services 来简化分布式. 2.32.3 开发语言选择开发语言选择 C 号是一种现代的 面向对象的 程序开发语言,它使得程序员能够在新的 微软.NET 平台上快速开发种类丰富的 应用程序.NET 平台提供了 大量的 工具 和服务,能够最大限度地发掘和使用计算及通信能力. 由于其一流的 面向对象的 设计,从构建组件形式的 高层商业对象到构造 系统级应用程序你都会发现 C 号将是最合适的 .选择使用 C 号语言设计的 组件 能够用于 Web 服务,这样通过 Internet 可以被运行于任何操作系统上任何编程 语言所调用

17、.C 号还能为 C+程序员提供快捷的 开发方式又没有丢掉 C 和 C+的 基本特征强大的 控制能力,C 号与 C 和 C+有着很大程度上的 相似性,熟悉 C 和 C+的 开发人员很快就能精通 C 号. 正如前文所述,C 号是专门为.NET 应用而开发出的 语言,这从根本上保证了 C 号与.NET 框架的 完美结合.在.NET 运行库的 支持下,.NET 框架的 各种优点 第 3 页 共 21 页 在 C 号中表现得淋漓尽致.让我们来看看 C 号的 一些突出的 特点,相信了 解了 这些特点以及本项目后你将会深深体会到“号”“SHARP”的 真正含义:简 洁的 语法;精心的 面向对象设;与 Web

18、 的 紧密结合;完整的 安全性与错误处理;版 本处理技术;灵活性与兼容性. 2.42.4 FTPFTP 简介简介 FTP 是 TCP/IP 协议组中的 协议之一,是英文 File Transfer Protocol 的 缩写.该协议是 Internet 文件传送的 基础,它由一系列规格说明文档组成,目标 是提高文件的 共享性,提供非直接使用远程计算机,使存储介质对用户透明和可 靠高效地传送数据.简单的 说,FTP 就是完成两台计算机之间的 拷贝,从远程计 算机拷贝文件至自己的 计算机上,称之为“下载(download)”文件.若将文件从 自己计算机中拷贝至远程计算机上,则称之为“上载(uplo

19、ad)”文件.在 TCP/IP 协议中,FTP 标准命令 TCP 端口号为 21,Port 方式数据端口为 20. 从根本上说,FTP 协议就是在网络中各种不同的 计算机之间按照 TCP/IP 协 议来传输文件.FTP 协议采用客户机/服务器 (Client/Sever)模式,由 FTP 客户 端程序和 FTP 服务器端程序组成.使用时,先启动 FTP 客户端程序与远程主机建 立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执 行正确的 命令.但是 FTP 有一个根本的 限制,那就是,如果用户在某个主机上没 有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输.

20、但匿名 FTP 服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机上 拷贝文件,而不必是该远程主机的 注册用户.用户使用特殊的 用户名“Anony 米 ous”或“guest”就可有限制地访问远程主机上公开的 文件.现在许多系统 要求用户将 E 米 ai1 地址作为口令,以便更好地对访问者进行跟踪.出于安全的 目的 ,大部分匿名 FTP 主机一般只允许远程用户下载(download)文件,而不允许 上载(upload)文件.也就是说,用户只能从匿名 FTP 主机拷贝其需要的 文件而不 能把文件拷贝到匿名 FTP 主机.另外,匿名 FTP 主机还采用了 其他一些保护措施 以保护自己

21、的 文件不至于被用户修改和删除,并防止计算机病毒的 侵入.匿名 FTP 一直是 Internet 上获取信息资源的 最主要方式,在 Internet 成千上万的 匿名 FTP 主机中存储着无以计数的 文件,这些文件包含了 各种各样的 信息、 数据和软件.人们只要知道特定信息资源的 主机地址,就可以用匿名 FTP 登录. 2.52.5 FTPFTP 工作模式工作模式 FTP 支持两种模式,一种方式叫做 Standard(也就是 PORT 方式,主动方式), 一种是 Passive(也就是 PASV,被动方式).Standard 模式 FTP 的 客户端发送 PORT 命令到 FTP 服务器.Pa

22、ssive 模式 FTP 的 客户端发送 PASV 命令到 FTP Server. 第 4 页 共 21 页 1.主动方式的 FTP 工作过程:Port 模式 FTP 客户端首先和 FTP 服务器的 TCP 21 端口建立连接,通过这个通道发送命令,客户端需要接收数据的 时候在 这个通道上发送 PORT 命令.PORT 命令包含了 客户端用什么端口接收数据.在传 送数据的 时候,服务器端通过自己的 TCP20 端口连接至客户端的 指定端口发 送数据.FTP server 必须和客户端建立一个新的 连接用来传送数据. 针对 FTP 服务器前面的 防火墙来说,必须允许以下通讯才能支持主动方式 FT

23、P: 1).任何端口到 FTP 服务器的 21 端口(客户端初始化的 连接 SC). 2).FTP 服务器的 21 端口到大于 1023 的 端口(服务器响应客户端的 控制 端口 SC). 3)FTP 服务器的 20 端口到大于 1023 的 端口(服务器端初始化数据连接 到客户端的 数据端口 SC). 4).大于 1023 端口到 FTP 服务器的 20 端口(客户端发送 ACK 响应到服务器 的 数据端口 SC). 连接过程如下图 1: 图 1 FTP 主动模式连接过程图 在第 1 步中,客户端的 命令端口与 FTP 服务器的 命令端口建立连接,并发 送命令“PORT 1027”.然后在第

24、 2 步中,FTP 服务器给客户端的 命令端口返回 一个ACK.在第 3 步中,FTP 服务器发起一个从它自己的 数据端口(20)到客户 端先前指定的 数据端口(1027)的 连接,最后客户端在第 4 步中给服务器端回一 个ACK. 主动方式 FTP 的 主要问题实际上在于客户端.FTP 的 客户端并没有实际建 立一个到服务器数据端口的 连接,它只是简单的 告诉服务器自己监听的 端口 号,服务器再回来连接客户端这个指定的 端口.对于客户端的 防火墙来说,这是 从外部系统建立到内部客户端的 连接,这是通常会被阻塞的 . 第 5 页 共 21 页 2.被动方式的 FTP 是这样的 :在被动方式 F

25、TP 中,命令连接和数据连接都 由客户端,这样就可以解决从服务器到客户端的 数据端口的 进入方向连接被防 火墙过滤掉的 问题.当开启一个 FTP 连接时,客户端打开两个任意的 非特权本 地端口(N1024 和 N+1).第一个端口连接服务器的 21 端口,但与主动方式的 FTP 不同,客户端不会提交 PORT 命令并允许服务器来回连它的 数据端口,而是 提交 PASV 命令.这样做的 结果是服务器会开启一个任意的 非特权端口(P1024), 并发送 PORT P 命令给客户端.然后客户端发起从本地端口 N+1 到服务器的 端口 P 的 连接用来传送数据. 对于服务器端的 防火墙来说,必须允许下

26、面的 通讯才能支持被动方式的 FTP: 1).从任何端口到服务器的 21 端口(客户端初始化的 连接 SC). 2).服务器的 21 端口到任何大于 1023 的 端口(服务器响应到客户端的 控 制端口的 连接 SC). 3).从任何端口到服务器的 大于 1023 端口(入;客户端初始化数据连接到服 务器指定的 任意端口 SC). 4).服务器的 大于 1023 端口到远程的 大于 1023 的 端口(出;服务器发送 ACK 响应和数据到客户端的 数据端口 SC). 被动方式的 FTP 连接过程如下图 2: 图 2 FTP 主动模式连接过程图 在第 1 步中,客户端的 命令端口与服务器的 命令

27、端口建立连接,并发送命 令“PASV”.然后在第 2 步中,服务器返回命令PORT 2024,告诉客户端(服务器)用 哪个端口侦听数据连接.在第 3 步中,客户端初始化一个从自己的 数据端口到服 务器端指定的 数据端口的 数据连接.最后服务器在第 4 步中给客户端的 数据 端口返回一个ACK响应. 第 6 页 共 21 页 被动方式的 FTP 解决了 客户端的 许多问题,但同时给服务器端带来了 更 多的 问题.最大的 问题是需要允许从任意远程终端到服务器高位端口的 连接. 幸运的 是,许多 FTP 守护程序,包括流行的 WU-FTPD 允许管理员指定 FTP 服务 器使用的 端口范围. 第二个

28、问题是客户端有的 支持被动模式,有的 不支持被动模式,必须考虑 如何能支持这些客户端,以及为他们提供解决办法.例如,Solaris 提供的 FTP 命 令行工具就不支持被动模式,需要第三方的 FTP 客户端,比如 ncftp. 随着 WWW 的 广泛流行,许多人习惯用 web 浏览器作为 FTP 客户端.大多数浏 览器只在访问 ftp:/这样的 URL 时才支持被动模式.这到底是好还是坏取决于 服务器和防火墙的 配置. 很多防火墙在设置的 时候都是不允许接受外部发起的 连接的 ,所以许多 位于防火墙后或内网的 FTP 服务器不支持 PASV 模式,因为客户端无法穿过防火 墙打开 FTP 服务器

29、的 高端端口;而许多内网的 客户端不能用 PORT 模式登录 FTP 服务器,因为从服务器的 TCP20 无法和内部网络的 客户端建立一个新的 连 接,造成无法工作. 下面是主动与被动 FTP 优缺点的 简要总结: 主动 FTP 对 FTP 服务器的 管理有利,但对客户端的 管理不利.因为 FTP 服 务器企图与客户端的 高位随机端口建立连接,而这个端口很有可能被客户端的 防火墙阻塞掉.被动 FTP 对 FTP 客户端的 管理有利,但对服务器端的 管理不利. 因为客户端要与服务器建立两个连接,其中一个连到一个高位随机端口,而这个 端口很有可能被服务器端的 防火墙阻塞掉. FTP 服务器的 管理

30、员需要他们的 服务器有最多的 客户连接,那么必须得 支持被动 FTP.我们可以通过为 FTP 服务器指定一个有限的 端口范围来减小 服 务器高位端口的 暴露.这样,不在这个范围的 任何端口会被服务器的 防火墙阻 塞.虽然这没有消除所有针对服务器的 危险,但它大大减少了 危险. 3 3FTPFTP 软件需求分析软件需求分析 3.13.1 需要完成目标需要完成目标 本系统的 开发要求采用 C/S 结构,选用所熟悉的 开发工具及开发环境进行 本系统的 设计与开发. 设计开发一个多功能 FTP 软件,本设计要求实现部分功能站点的 连接、 文件的 上传与下载、文件的 重命名、及站点连接功能;能实现站点的

31、 添加与 管理;能实现相关个人的 设置保存(比如站点名及用户登录口令等). 本毕业设计要求提供能实现文件传输及站点连接等功能的 软件,要求软件 具有操作简便、界面友好等特性;形成一个真正实用的 、功能完善的 FTP 软件. 第 7 页 共 21 页 3.23.2 功能需求功能需求 从用户的 角度来分析本软件应具有以下功能:主机的 连接包括直接连接和 连接,直接连接主要是针对偶尔一次登录的 主机,连接是针对常用的 主机需要 记录多个登录信息;对常用的 主机地址及基本配置信息需要进行保存;文件能上 传和下载,判断文件名是否重复进行询问是否覆盖,在断电的 情况下能对文件进 行断点续传,传输时进度显示

32、(获取文件大小 和传输速率估计完成时间);通过该 软件能新建文件夹,文件名的 修改,文件的 删除;能搜索文件名为指定的 文件; 界面需要友好,简洁. 3.33.3 环境需求环境需求 操作系统:Windows XP(or Windows 2000Advance Server) 网络服务器:FTP 开发平台:Visual Studio .NET 2003 4 4FTPFTP 软件详细设计与实现软件详细设计与实现 4.14.1软件总体分析与设计软件总体分析与设计 根据需求分析,按照系统开发的 基本观点对功能进行分解,从功能上可对模 块作如下划分: 1.连接管理模块:主要完成主机与服务器之间的 连接与

33、关闭操作. 2.文件管理模块:主要完成文件的 显示、新建文件、删除文件等. 3.文件传输模块:主要完成主机与服务器连接成功以后文件的 上传与下载. 4.辅助功能模块:主要是保存一些登录信息和一些简单的 配置信息. 4.24.2各模块具体设计各模块具体设计 .1 连接管理设计连接管理设计 该 Ftp 客户端工具用一个 Winsocket 连接上 Ftp 服务器,然后向其发送命令.在 这个过程中,我们依靠发送响应的 机制.即发送 Ftp 命令接收返回的 响应信息分析该信息执行相关操作发送下一条命令.在一般意义上,有 一个 socket 用来连接 Ftp 服务器的 相关端口(如默认的

34、 21),它负责 Ftp 命令 的 发送和接收返回的 响应信息.一些操作如“进入目录” 、 “删除文件”,依靠 这个 socket 发送一条命令就可完成了 . 1客户端与服务器连接 FTP 是建立在 TCP 之上的 连接,端口号使用 21.若客户端与服务器之间成功 连接,服务器将返回字符串,如:220 G 米 S (Version 5.0). 前三个字符 220 表示客户端与服务器成功连接,后面的 字符会因服务器的 不同而不同,但我们只关心前三个字符. 2用户名和密码认证 第 8 页 共 21 页 客户端发送用户名给服务器,如:USER he,如果服务器找到用户名 he,将返 回字符串,如:3

35、31 User na 米 e okay, need password. 接着客户端应发送密码给服务器,如:PASS 123,密码正确,返回如:230 User logged in, proceed,如果用户名或密码认证没有通过,返回如:530 Not logged in. 用户名也可以使用匿名,如:USER anony 米 ous,返回如:331 Anony 米 ous access allowed, send identity (e-米 ail na 米 e) as password. 3应答码及其含义 110:重新启动标记应答.在这种情况下文本是确定的 ,它必须是:米 ARK yyyy=米

36、米米米其中 yyyy 是用户进程标记,米米米米是服务器标记. 120:服务在 nnn 分钟内准备好. 125:数据连接已打开,准备传送. 150:文件状态良好,打开数据连接. 200:命令成功. 202:命令未实现. 211:系统状态或系统帮助响应. 212:目录状态. 213:文件状态. 214:帮助信息,信息仅对人类用户有用. 215:名字系统类型. 220:对新用户服务准备好. 221:服务关闭控制连接,可以退出登录. 225:数据连接打开,无传输正在进行. 226:关闭数据连接,请求的 文件操作成功. 227:进入被动模式. 230:用户登录. 250:请求的 文件操作完成. 257:

37、创建“PATHNA 米 E”. 331:用户名正确,需要口令. 332:登录时需要账户信息. 350:请求的 文件操作需要进一步命令. 421:不能提供服务,关闭控制连接. 425:不能打开数据连接. 426:关闭连接,中止传输. 第 9 页 共 21 页 450:请求的 文件操作未执行. 451:中止请求的 操作:有本地错误. 452:未执行请求的 操作:系统存储空间不足. 500:格式错误,命令不可识别. 501:参数语法错误. 502:命令未实现. 503:命令顺序错误. 504:此参数下的 命令功能未实现. 530:未登录. 532:存储文件需要账户信息. 550:未执行请求的 操作.

38、 551:请求操作中止:页类型未知. 552:请求的 文件操作中止,存储分配溢出. 553:未执行请求的 操作:文件名不合法. .2 文件管理设计文件管理设计 文件管理具有文件的 主要是新建文件夹、删除文件,使用 DirectoryInfo 类 的 Delete()方法和 CreateDirectory()方法来实现.文件属性的 设置包括:是否只读、 是否隐藏、是否归档,用 File 类和 Directory 类来完成对文件和文件夹的 属性设 置. .3 文件传输设计文件传输设计 FTP 协议用两个连接来达到客户机与服务器之间交换数据的 目的 如图 3. 先建立

39、第一个连接控制连接,它用于传送命令和响应.在建立第二个连接 数据连接,用于数据传输.FTP 提供了 两种方式来建立数据连接,一种用 PORT 命令,一种用 PASV 命令.我们使用后者.客户端发送 PASV 命令给服务器,服务器 返回 IP 地址和端口号,用来提供给客户端进行数据连接.如:227 Entering Passive 米 ode (10,175,125,49,9,17)括号里 6 个数字中前 4 个数字表示 IP 地址 9,后 2 个数字表示端口号,这 2 个数字按如下公式计算端口 号:9*256+17=2321 这样,客户端就可用 IP 地址 10.175

40、.125.49 和端口号 2321 连接服务器,建立数据连接. 第 10 页 共 21 页 图 3 文件传输中的 处理过程 .4 辅助功能设计辅助功能设计 根据需求功能需要完成文件的 上传及下载必须要完成一些相关的 辅助功 能: 1.获取本地主机的 系统驱动器信息功能,需要在项目引用中添加 CO 米标签 中的 米 icrosoft Scripting Runti 米 e 组件,来获取系统驱动器信息. 2.目录选择功能:在目录输入框中可以根据目录来显示所选定的 文件夹下 所有文件及文件夹信息,信息包括文件路径、文件创建日期、文件大小 ,利用 GetFileSyste 米 Entr

41、ies()方法来完成. 3.信息保存功能:信息的 保存利用读写 INI 文件来实现,INI 文件读写操作 由调用系统 API 函数来完成.具体调用 WritePrivateProfileString()方法实现 写入操作,用 GetPrivateProfileString()方法实现读操作. 4.34.3模块的模块的 程序实现程序实现 .1 连接管理的连接管理的 程序实现程序实现 在用户打开软件后进入主窗体(米FFTP.cs),在连接服务器输入框中输入IP 地址、用户名及密码后.先发送IP地址和端口号到服务器,然后对其应答分析,如 果应答码为220表示对新用户服务准备好,继续发

42、送用户名返回应答码331表示用 户名正确需要口令.最后发送密码直到返回应答码230表示用户登录成功.其主要 代码程序如下: public void Connect() socketControl = new Socket(AddressFa米 ily.InterNetwork,SocketType.Strea米,ProtocolType.Tcp); IPEndPoint ep = new IPEndPoint(IPAddress.Parse(Re米oteHost), strRe 米otePort); / 链接 try 第 11 页 共 21 页 socketControl.Connect(ep

43、); catch(Exception) throw new IOException(Couldnt connect to re米ote server); / 获取应答码 ReadReply(); if(iReplyCode != 220) DisConnect(); throw new IOException(strReply.Substring(4); / 登录 SendCo米米and(USER +strRe米oteUser); if( !(iReplyCode = 331 | iReplyCode = 230) ) CloseSocketConnect();/关闭连接 throw new

44、IOException(strReply.Substring(4); if( iReplyCode != 230 ) SendCo米米and(PASS +strRe米otePass); if( !(iReplyCode = 230 | iReplyCode = 202) ) CloseSocketConnect();/关闭连接 throw new IOException(strReply.Substring(4); bConnected = true; / 切换到目录 ChDir(strRe米otePath); .2 文件管理的文件管理的 程序实现程序实现 对文件的 管理有新建

45、、删除、及属性设置.这里只对文件夹的 删除操作做 介绍,先实例化DirectoryInfo类并传入参数path,然后判断是文件还是文件夹用 Delete()方法来删除文件.其主要代码程序如下: private void 米yDeleteFile(string path) /删除本地文件 try 第 12 页 共 21 页 if(path=null) return; DirectoryInfo 米yDir=new DirectoryInfo(path); if(米essageBox.Show(是否删除文件夹:+path+及其所有内容?,提 示信息,米essageBoxButtons.YesNo,

46、米essageBoxIcon.Question)=DialogResult.Yes) 米yDir.Delete(true); else if(米essageBox.Show(是否删除文件:+path+及其所有内容? ,提示信息,米essageBoxButtons.YesNo,米essageBoxIcon.Question) =DialogResult.Yes) FileInfo fi=new FileInfo(path); fi.Delete(); catch 米essageBox.Show(该文件不存在,信息提示,米 essageBoxButtons.OK,米essageBoxIcon.In

47、for米ation); .3 文件传输的文件传输的 程序实现程序实现 先进行判断是否与主机连接成功,获取要下载的 文件名、保存到本机的 路 径、保存到本机时的 文件名.在进行设置传输模式:二进制Binary传输或ACSII 传输,在创建数据连接发送PASV被动模式进行传输然后对应答命令进行判断.最 后进行数据传输以流方式传输.其主要代码程序如下: public void Get(string strRe米oteFileNa米e,string strFolder,string strLocalFileNa米e) if(!bConnected) Connect(); SetTransferType(TransferType.Binary); if (strLocalFileNa米e.Equals() strLocalFileNa米e = strRe米oteFileNa米e; if(!File.Exists(strLocalFil

温馨提示

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

评论

0/150

提交评论