FTP客户端的设计与实现剖析_第1页
FTP客户端的设计与实现剖析_第2页
FTP客户端的设计与实现剖析_第3页
FTP客户端的设计与实现剖析_第4页
FTP客户端的设计与实现剖析_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 1 FTP 客户端的设计与实现客户端的设计与实现 摘 要 FTP 是 Internet 上用来传送文件的协议 它是为了我们能够在 Internet 上互相传送文件而制定 的文件传送标准 规定了 Internet 上文件如何传送 通过 FTP 协议 我们就可以跟 Internet 上的 FTP 服务器进行文件的上传或下载 本设计以实现一个简单易用的 FTP 客户端为目标 通过分析 FTP 协议 的基本工作原理和 FTP 的数据传输原理 研究如何使用 VC 语言对 FTP 客户端进行设计 用Visual Studio2010设计和实现了 FTP 客户端的开发 关键词 FTP 的工作原理 VC FTP 客户端 1 绪论 1 1 课题背景 FTP 是互联网上使用最广泛的文件传输协议 1 在互联网早期曾占据整个互联网通信 的三分之一 它解决了在不同操作系统下处理文件格式的不兼容性 传统方式需要在 DOS 下输入命令 对于普通用户是件极困难的事 但有了 FTP 客户端软件后 只要轻点 几下鼠标就可以完成所有操作 FTP 客户端应该包含以下功能 登录 浏览目录 上传 和下载 2 它已成为人们不可缺少的软件之一 1 2 研究现状 FTP 服务是 Internet 上最早应用于主机之间进行数据传输的基本服务之一 起初 FTP 并不是应用于 IP 网络上的协议 而是 20 世纪 60 80 年代美国国防部组建的 ARPANET 网络中 用于计算机间的文件传输的协议 FTP 服务的一个非常重要的特点是 其实现可以独立于平台 也就是说在 UNIX DOS Windows 等操作系统中都可以实现 FTP 的客户端和服务器 3 尽管目前已经普遍采用 HTTP 方式传送文件 但 FTP 仍然是 跨平台直接传送文件的主要方式 目前市面上可通过正规渠道获得的成熟的 FTP 软件如 Server U Cuteftp Transmit Flashfxp 等都是国外开发的 需要注册 付费使用 从其他渠道 获取的 FTP 软件 则存在安全方面的问题 国内也很难找到免费 安全的 FTP 软件 虽 然操作系统有自带的 FTP 软件 但它是基于命令行的 没有友好的用户操作界面 对用 户的计算机技能要求较高 一般的用户也不会用 而且不支持断点续传和文件夹的上传 下载等功能 4 因此 设计与实现一个开源的 适合大众需求的 FTP 客户端和服务器软 件是有必要的 是符合社会发展需要的 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 2 1 3 研究方法 本设计主要用 VC 语言开发 FTP 客户端软件 5 根据以前所学的相关知识 包括计 算机网络技术 TCP IP 详解等 查阅 Windows 应用程序开发资料 学习 VC 语言 FTP 通信过程 进而实现 FTP 软件的功能 2 FTP 协议分析 2 1 FTP 内容简介 文件传输协议 File Transfer Protocol FTP RC959 是因特网上使用最为广泛的文 件传输协议 6 FTP 提供交互式的访问 允许文件具有存取权限 如访问文件必须经过授 权和有效指令 并允许用户指明文件的类型和格式 如指明是否使用 ASCII 码 FTP 屏蔽了各计算机系统的细节 因而适合于在异构网络 主机间传输文件 当用户 在 Windows 操作系统中有同名的应用程序 可以使用 Windows 中的 运行 对话框或在 DOS 命令行状态下运行 启动 FTP 与 TCP IP 的网络主机进行文件传输 7 实际上要用到两个程序 本地机上的 FTP 客户程序 它提出传输文件的请求 运行在远 程主机上的 FTP 服务器程序 它响应用户请求并把指定的文件传输到相应的主机上 从 根本上说 FTP 协议就是在网络中各种不同的计算机之间按照 TCP IP 协议来传输文件 FTP 协议采用客户机 服务器 Client Sever 模式 由 FTP 客户端程序和 FTP 服务器端程序 组成 使用时 先启动 FTP 客户端程序与远程主机建立连接 然后向远程主机发出传输 命令 远程主机在收到命令后就给予响应 并执行正确的命令 FTP 是基于 TCP 的文件传送协议 其传输的可靠性由 TCP 来保障 在 TCP IP 协议 族中还有一个基于 UDP 的文件传送协议 TFTP 它与 FTP 同属于文件共享协议 即在传 输过程中复制整个文件 其特点是 若要传输一个文件 就必须先获得本地的文件副本 若要修改文件 就只能对文件的副本进行修改 然后再将修改后的文件副本传回到原主 机 8 一般说来 因特网上有两大类 FTP 文件服务器 一类是所谓的 匿名 FTP 服务器 这类服务器的目的是向公众提供文件资源服务 不要求用户事先在该服务器上进行注册 另一类是非匿名 FTP 服务器 要进入这类服务之前 用户必须先向服务器系统管理员申 请用户名和密码 非匿名 FTP 服务器通常供内部使用或提供咨询服务 2 2 FTP 工作原理 FTP FileTransferProtocol 是文件传输协议的简称 用于 Internet 上的控制文件的 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 3 双向传输 同时 它也是一个应用程序 用户可以通过它把自己机器与世界各地所有运 行 FTP 协议的服务器相连 访问服务器上的资源和信息 FTP 协议在 TCP IP 协议栈中的 位置如表 2 1 表 2 1 TCP IP 协议栈 HTTP FTP TELN SMTP DNS TFTP NMP 应用层 TCP UDP 传输层 IP 互联网络层 X25 ISDN LAN WLAN FDDI ATM 网络接口层 当启动 FTP 从远程计算机拷贝文件时 事实上启动了两个程序 一个本地机器上的 FTP 客户端程序 它向 FTP 服务器提出拷贝文件的请求 另一个是启动在远程计算机的 上的 FTP 服务器程序 它响应请求把你指定的文件传送到你的计算机中 9 在典型的 FTP 会话过程中 用户一般坐在本地主机前进行同远程主机之间的文件传 输 为了能够访问远程账户 用户必须提供用户标识和密码 在通过了身份验证之后 用户就可以在本地主机和远程主机之间传输文件了 用户通过 FTP 的用户代理与 FTP 进 行交互 用户首先需要远程提供主机名或 IP 地址 以便本地 FTP 的客户进程能够同远程 主机上的 FTP 服务器进程建立连接 然后 用户提供其标识和密码 一旦验证通过 用 户即可在两个系统之间传输文件 FTP 使用两个并行的 TCP 协议来传输文件 一个称为控制连接 另一个称为数据连 接 控制连接用来在两台主机之间传输控制信息 如用户标识 密码 操作远程主机文 件目录的命令 发送和取向文件的命令等 而数据连接则真正用来发送文件 10 FTP 的 控制和数据连接如图 2 1 所示 图 2 1 FTP 工作原理示意图 当用户启动一次与远程主机的 FTP 会话时 FTP 首先建立一个 TCP 连接到 FTP 服务 电 脑 服务器 控制连接 21 号端口 FTP 用户界面 数据连接 20 号端口 FTP 客户端FTP 服务器 本地文件系统远程文件系统 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 4 器的 21 号端口 FTP 的客户端则通过该连接发送用户标识和密码等 客户端还可以通过 该连接发送命令以改变远程系统的当前工作目录 当用户要求传送文件时 FTP 服务器 则在其 20 号端口上建立一个数据连接 FTP 在该连接上传送完毕一个文件后会立即断开 该连接 如果再一次 FTP 会话过程中需要传送另一个文件 FTP 服务器则会建立另一个 连接 在整个 FTP 会话过程中 控制连接是始终保持的 而数据连接则会随着文件的传 输不断的打开和关闭 2 3 FTP 工作模式 FTP 采用 C S 客户端 服务器 模式进行通信 但与其他的 C S 模式网络通信协议 又有一个很大的区别 通常在进行 HTTP 通信或是 TELNET 通信的时候 只需要一个端 口进行通信 即客户端只需要连接一个端口进行数据通信 如 TELNET 的默认端口是 23 用户从头到尾都只需使用这个端口 但是 FTP 通信除了有一个默认端口 21 之外 还 需要其他的端口 其中默认端口 21 主要进行控制连接 进行命令协议和服务器端的 响应码的传输 另外一个非标准端口主要进行数据传递 如文件的上载 下载等 11 至 于非标准端口的产生则要根据用户选择的连接模式而定 如果客户选择的是主动模式 PORT 则需要用户端提供给服务器一个 IP 地址和一个非标准端口 而如果用户采用 被动模式 PASV 则服务器端需要提供给客户端一个 IP 地址和一个非标准端口 下表 2 2 是几个著名的 TCP 端口号 表 2 2 TCP 端口号 TCP 端口号 关键字 描述 20 FTP DATA 文件传输协议数据 21 FTP 文件传输协议控制 23 TELNET 远程登录协议 25 SMTP 简单邮件传输协议 53 DOMAIN 域名服务器 80 HTTP 超文本传输协议 110 POP3 邮局协议 119 NNTP 新闻传送协议 控制连接是建立在 USER PIT 和 SERVER PI 之间用于交换命令与应答的通信链路 数据连接是传输数据的全双工连接 传输数据可以发生在服务器 DTP 和用户 DTP 之间也 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 5 可以发生在两个服务器 DTP 之间 FTP 可以传输非连续的文件 这些文件的一部分称为 页 服务器 DTP 代表一种传输过程 它通常处于 主动 状态 它和侦听端口建立数据连 接 它还可以为传输和存储设置参数 并根据 PI 的指令传输数据 具体工作模式如图 2 2 所示 图 2 2 FTP 工作模式 在开始阶段 标准 FTP 命令由用户 PI 产生并通过控制连接传送到服务器进程 服务 器 PI 向用户 PI 返回标准应答 FTP 命令指定数据连接参数和文件系统操作 用户 DTP 在特定数据端口侦听 服务器开始数据连接并以指定的参数开始数据传输 数据端口不 必在开始 FTP 命令的机器上 但用户或用户 FTP 进程必须确定它在指定的数据端口上侦 听 这个数据连接是全双工的 2 4 简单文件传送协议 TCP IP 协议族中还有简单文件传输协议 它是一个很小且易于实现的文件传送协议 RFC 783 RFC 1350 虽然 TFTP 也使用客户机 服务器方式 但它的传输层使用 UDP 支持 因此 TFTP 要自己实现纠错功能 TFTP 只支持文件传输 而不支持交互 且没有一个庞 大的命令集 TFTP 没有列目录的功能 也不能对用户进行身份验证 12 TFTP 的主要优点有两个 第一 TFTP 可用于 UDP 环境 例如 当需要将程序或文 件同时向许多计算机下载时往往就需要使用 TFTP 第二 TFTP 代码所占用的内存空间 较小 这对存储容量较小的计算机或某些特殊用途的设备是很重要的 这些设备不需要 硬盘 只需要固化了 TFTP UDP 和 IP 的小容量只读存储器即可 3 FTP 客户端的设计 3 1 设计目的 SPI SDTP 用户接口 USERPI UDTP FTP 命令和应答 控制连接 数据连接 用 户 文件传输系统文件系统 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 6 FTP 早已应用在网络的各个方面 比如我们在访问网络上的资源时 经常会遇到需 要连接 FTP 服务器来下载 或者你制作了一个网站 想要将其上传至服务器 让大家能 够访问它 这个时候就会用到 FTP 客户端 一般来说 系统需求分析从以下几个方面来 介绍 用户需求 软件要简单上手 能够匿名或者使用帐号登录到用户指定的服务器 上 进行访问和数据的上传和下载 功能需求 该系统主要包括以下几个方面 登录 和连接服务器模块 浏览服务器 本地目录和文件模块 上传和下载文件模块 由这三个 模块构成该系统 性能需求 整个系统操作应当简便 界面友好 运行稳定 执行速 度快 系统本身运行对计算机硬件平台和操作系统平台要求适中 因此本文所设计的 FTP 客户端则适合大多数用户使用 界面设计的很简单 使用户可以一目了然 而且具 备 FTP 客户端的基本功能 可以作为下载 上传文件的工具来使用 3 2 开发语言 程序中所用到的编程语言就是 C C 是在 C 语言的基础上开发的一种通用编程 语言 应用广泛 13 C 支持多种编程范式 面向对象编程 泛型编程和过程化编程 最新正式标准 C 14 于 2014 年 8 月 18 日公布 其编程领域众广 常用于系统开发 引 擎开发等应用领域 是至今为止最受广大受用的最强大编程语言之一 支持类 类 封装 重载等 14 C 语言的主要特点表现在两个方面 一是尽量兼容 C 二是支持面向对象的方法 它操持了 C 的简洁 高效的接近汇编语言等特点 对 C 的类型系统进行了改革的扩充 因此 C 比 C 更安全 C 的编译系统能检查出更多的类型错误 另外 由于 C 语言的 广泛使用 因而极大的促进了 C 的普及和推广 因此 我选择使用 C 语言来实现 15 3 3 客户端功能模块 FTP 客户端作为用户连接 FTP 服务器的工具 需要具备一些基本功能模块 如登录 和连接 浏览本地目录和文件 上传和下载等 其中最主要的三大功能模块如下 登录和连接功能模块 将用户本机与指定的 IP 地址连接 验证用户名和密码 在 FTP 服务器上进行连接 上传功能模块 用户可以自行选择本机上存储的文件 上传至 FTP 服务器 在用户选 择 所需要上传的文件 单击文件 然后点击上传 即可将文件上传至服务器 在上传过 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 7 程 中 用户也可以暂停 继续和删除文件 下载功能模块 连接用户指定的 FTP 服务器 获取服务器目录下的文件列表 当用户 选 择项目为文件时 单击选定文件 然后选择下载 文件即可下载到指定的文件夹 即 用户可已选择任何自己想要下载的文件 通过 FTP 客户端进行下载 在下载过程中 用 户也可以暂停 继续和删除文件 有了这三个基本的功能模块 客户端的基本应用功能即可实现 3 4 客户端界面设计 为了使用户能够方便的使用 FTP 客户端 在设计中将数据输入和信息显示整合在一 个页面中 全部客户端仅包含一个主要的窗口 客户端如下图 3 1 所示 窗口中分别有以 下四个部分 数据输入部分 用来让用户输入服务器地址 用户名 密码 服务器连接部分 点击快速登录 即可连接服务器 服务器文件信息显示部分 主要用来显示服务器下存储的文件 方便用户清楚的了解 服 务器中存储了哪些文件 操作按钮部分 用户可以通过单击左侧文件 点击上传 然后根据提示来实现文件上 传 用户可以通过单击右侧文件 点击下载来实现文件下载的具体操作 整个上传下载过 程 中 用户可以暂停 继续和删除文件 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 8 图 3 1 客户端界面 3 5 数据流程图 3 5 1 客户端连接流程图 运行客户端时 首先是连接服务器 需要输入服务器 IP 地址及用户名和密码点击快 速登录按钮后开始连接服务器 下图 3 2 为客户端连接流程图 图 3 2 客户端连接流程图 用户输入服务器 地址 用户名及 密码 点击快速登录 是否连接成功 在右侧服务器 信息显示模块 显示信息 左侧选择本地 目录 在右侧服务器信息显 示模块不显示信息 显示本地目录 下的文件 否 是 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 9 3 5 2 上传模块流程图 当用户想要上传文件时 用户可以选择需要上传的文件 单击文件 点击上传 在 上传过程中可以进行暂停 继续和删除操作 下图 3 3 为上传模块流程图 图 3 3 上传模块流程图 3 5 3 下载模块流程图 当用户在服务器文件列表中选择想要下载的文件后 单击需要下载的文件 然后点 击下载 文件将会下载到本机上的指定文件夹下 将服务器上的文件下载至本机 下图 3 4 为下载模块流程图 图 3 4 下载模块流程图 选择本地目 录下的磁盘 选择该磁盘 下的文件 点击上传 上传时可以选 择暂停 继续 和删除 服务器目标目 录下没有上传 文件 服务器目标目录 下有上传文件 上传是否成功 是 否 服务器列表会 显示刚才上传 的文件 选择要下载 的文件 选定需要下 载的文件夹 点击下载 下载时可以 暂停 继续 和删除文件 下载是否成功 指定文件夹下没 有下载的文件 指定文件夹下有下 载的文件 是 否 继续选择需要下载 的文件 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 10 4 FTP 软件设计与实现 4 1 软件总体设计与分析 根据需求分析 按照系统开发的基本观点对功能进行分解 从功能上可对模块作如 下划分 连接管理模块 主要完成主机与服务器之间的连接操作 文件管理模块 主要完成目录的选择 选择文件等 文件传输模块 主要完成主机与服务器连接成功后文件的上传与下载 传输控制模块 主要进行文件传输过程中的暂停 继续和删除 4 2 主要模块具体设计 4 2 1 连接管理设计 客户端与服务器连接 FTP 是建立在 TCP 之上的连接 端口号使用 21 若客户端与服务器之间成功连接 服务器将返回字符串 如 220 GMS Version 5 0 前三个字符 220 表示客户端与服务 器成功连接 后面的字符会因服务器的不同而不同 但我们只关心前三个字符 用户名和密码认证 客户端发送用户名给服务器 如 USER he 如果服务器找到用户名 he 将返回字符 串 如 331 User name okay need password 接着客户端应发送密码给服务器 如 PASS 123 密码正确 返回 230 User logged in proceed 如果用户名或密码认证没有 通过 返回如 530 Not logged in 其主要程序如下 void CMainFrame LoginFTP CString csServer csPassword csUser csPort m ConnectBar GetDlgItemText IDC FTPSERVER csServer m ConnectBar GetDlgItemText IDC FTPPORT csPort m ConnectBar GetDlgItemText IDC PASSWORD csPassword m ConnectBar GetDlgItemText IDC USER csUser if csServer IsEmpty m bLoginSucc TRUE CString csCurDir m pFtp GetCurrentDirectory csCurDir if m pFtpView NULL m pFtpView m RemoteFiles m FtpServer csServer m pFtpView m RemoteFiles m Port csPort m pFtpView m RemoteFiles m User csUser m pFtpView m RemoteFiles m Password csPassword m csServer csServer m csPassword csPassword m csUser csUser m nPort atoi csPort m pFtpView m RemoteFiles m BaseDir csCurDir m pFtpView m RemoteFiles DisplayPath SetTimer 1 5000 NULL catch CInternetException delete m pFtp delete m pFtp 4 2 2 文件管理设计 文件管理设计主要是完成文件选择和显示 使用户根据自己的不同需要选择不同的 文件夹 进行文件的上传与下载 其主要程序如下 void CSortListCtrl OnDblclk NMHDR pNMHDR LRESULT pResult int nItem GetSelectionMark if nItem 1 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 12 if m nListType 0 进入本地系统子目录 判断是否为目录 int nFlag GetItemData nItem if nFlag 1 获取完整的目录信息 CString csFoder GetItemText nItem 0 csFoder 获取目录 m CurDir csFoder DisplayPath m CurDir else 进入 FTP 服务器子目录 判断是否为目录 int nFlag GetItemData nItem if nFlag 1 获取完整的目录信息 CString csFoder GetItemText nItem 0 csFoder 获取目录 m CurDir csFoder DisplayPath m CurDir pResult 0 4 2 3 文件传输设计 该模块主要进行文件的上传与下载 这里主要应用了多线程的断点续传 多线程下 载的原理是这样的 通常服务器同时与多个用户连接 用户之间共享带宽 如果 N 个用 户的优先级都相同 那么每个用户连接到该服务器上的实际带宽就是服务器带宽的 N 分 之一 可以想象 如果用户数目较多 则每个用户只能占有可怜的一点带宽 如果你通 过多个线程与服务器连接 那么你就可以榨取到较高的带宽了 其主要程序如下 上传文件的线程函数 DWORD stdcall UploadThreadProc LPVOID lpParameter 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 13 ThreadParam Param ThreadParam lpParameter CMainFrame pDlg Param pDlg int nItem Param nItem char downfile MAX PATH 0 strcpy downfile Param m DownFile char relfile MAX PATH 0 strcpy relfile Param m RelativeFile pDlg m pTastView m TastList SetItemText nItem 4 正在上传 if Param nDownFlag 0 当前选择的是文件 pDlg UpLoadFile pDlg downfile relfile DWORD Param m hThread true pDlg m csServer pDlg m csUser pDlg m csPassword pDlg m nPort else if Param nDownFlag 1 pDlg UpLoadFile pDlg downfile relfile DWORD Param m hThread false pDlg m csServer pDlg m csUser pDlg m csPassword pDlg m nPort if pDlg m dwStop DWORD Param m hThread 终止线程后设置初始标记 pDlg m dwStop 0 pDlg m pTastView m TastList SetItemText nItem 3 完成 pDlg m pTastView m TastList SetItemText nItem 4 上传完成 pDlg DeleteItemFormData delete Param int nCount pDlg m pTastView m TastList GetItemCount if pDlg m bTurnOff 关机操作 return 0 下载文件的线程函数 DWORD stdcall DownloadThreadProc LPVOID lpParameter 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 14 ThreadParam Param ThreadParam lpParameter CMainFrame pDlg Param pDlg int nItem Param nItem char downfile MAX PATH 0 strcpy downfile Param m DownFile char relfile MAX PATH 0 strcpy relfile Param m RelativeFile pDlg m pTastView m TastList SetItemText nItem 4 正在下载 if Param nDownFlag 0 当前选择的是文件 pDlg DownLoadFile pDlg downfile relfile DWORD Param m hThread true pDlg m csServer pDlg m csUser pDlg m csPassword pDlg m nPort pDlg m csDownDir else if Param nDownFlag 1 pDlg DownLoadFile pDlg downfile relfile DWORD Param m hThread false pDlg m csServer pDlg m csUser pDlg m csPassword pDlg m nPort pDlg m csDownDir pDlg m pTastView m TastList SetItemText nItem 3 完成 pDlg m pTastView m TastList SetItemText nItem 4 下载完成 if pDlg m dwStop DWORD Param m hThread 终止线程后设置初始标记 pDlg m dwStop 0 pDlg DeleteItemFormData int nCount pDlg m pTastView m TastList GetItemCount delete Param if pDlg m bTurnOff 关机操作 return 0 4 2 4 传输控制设计 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 15 该过程主要实现文件在上传和下载过程中可以暂停 继续和删除的功能 其主要程序如下 void CTastListView OnBtStop int nSel m TastList GetSelectionMark if nSel 1 DWORD nItemData m TastList GetItemData nSel CString csState m TastList GetItemText nSel 3 if csState 暂停 SuspendThread HANDLE nItemData m TastList SetItemText nSel 3 暂停 void CTastListView OnBtContinue int nSel m TastList GetSelectionMark if nSel 1 DWORD nItemData m TastList GetItemData nSel CString csType m TastList GetItemText nSel 1 ResumeThread HANDLE nItemData if csType 下载 m TastList SetItemText nSel 3 正在下载 else m TastList SetItemText nSel 3 正在上传 void CTastListView OnBtDelete int nSel m TastList GetSelectionMark if nSel 1 DWORD nItemData m TastList GetItemData nSel CMainFrame pDlg CMainFrame AfxGetMainWnd pDlg m dwStop nItemData 5 功能运行测试 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 16 在 Windows7 中开启系统自带 FTP 服务器的操作过程具体如下 首先打开控制面板 点击系统与安全 再点击管理工具 找到 Internet 信息服务 IIS 管理器 如下图 5 1 所 示 图 5 1 Internet 信息服务 IIS 管理器 双击打开 Internet 信息服务 IIS 管理器 右击网站 再点击添加 FTP 站点 如下 图 5 2 所示 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 17 图 5 2 添加 FTP 站点 FTP 站点添加的具体操作 先输入 FTP 站点名称 再输入物理路径 接着输入 IP 地 址和身份验证 如下图 5 3 图 5 4 所示 图 5 3 FTP 站点名称 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 18 图 5 4 FTP 站点中的 IP 地址和身份验证 为了验证程序是否能正常运行 我选择连接 IP 为 192 168 66 235 的 FTP 服务器来测 试 首先是服务器连接的验证 在服务器地址中输 192 168 66 235 在用户名中输入王旭 在密码栏中输入 0509 点击快速登录按钮后 结果如下图 5 5 所示 图 5 5 FTP 客户端 接下来是上传功能的验证 在左侧的本地信息选择自己想要上传信息的磁盘 然后 在该磁盘下选择文件 单击文件 点击上传 则文件开始上传 如图 5 6 图 5 7 所示 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 19 图 5 6 文件选择 图 5 7 文件上传 最后是下载程序的验证 在服务器文件列表中 选中自己想要下载的文件 选中自 己想要下载文件的存储目录 点击下载 文件则开始下载 具体操作如下图 5 8 图 5 9 图 5 10 所示 图 5 8 下载文件存储目录选择 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 20 图 5 9 文件选择 图 5 10 文件下载 在上传和下载过程中进行文件的暂停 继续与删除 如下图 5 11 图 5 12 图 5 13 所示 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 21 图 5 11 下载中暂停 图 5 12 暂停后再继续上传 图 5 13 下载中文件删除 6 结论 FTP 的主要作用 就是让用户连接上一个远程计算机 这些计算机上运行着 FTP 服 务器程序 察看远程计算机有哪些文件 然后把文件从远程计算机上下载到本地计算机 或把本地计算机的文件上传到远程计算机 而 FTP 客户端则实现了用户方便连接和访问 FTP 服务器的功能 此次 FTP 客户端的设计 分析了 FTP 协议的工作原理和 FTP 的数据 传输原理 利用 C 语言进行了程序的设计 并在 visual studio2010 软件下进行调试 实 现了 FTP 客户端的基本功能 该客户端能够使用户可以根据自己的需要选择不同磁盘下 的文件进行上传与下载 并且在上传和下载过程中用户可以暂停文件 也可以删除文件 完成了基本的 FTP 软件功能 通过这次毕业设计的制作 我了解了 C 语言的使用和功 能 也对 FTP 的工作协议有了一定的了解 学会了 FTP 客户端的使用 德德州州学学院院 物物电电学学院院 2 20 01 15 5 届届 电电子子信信息息科科学学与与技技术术专专业业 毕毕业业设设计计 22 参考文献 1 冯博琴 陈文革 计算机网络 第二版 M 北京 高等教育出版社 2008 103 106 2 冯博琴 计算机网络实验教程 M 北京 高等教育出版社 2005 15 20 3 郑毛祥 程新丽 计算机网络 M 武汉 华中科技大学出版社 2014 42 44 4 尹向东 计算机网络实验实训教程 M 西安 西安电子科技大学出版社 2014 65 78 5 郑阿奇 Visual C 网络编程教程 Visual Studio 2010 M 北京 电子工业出版社 2013 130 160 6 叶新铭 计算机网络 M 北京 机械工业出版社 2001 242 283 7 谢希仁 计算机网络 第五版 M 北京 电子工业出版社 2008 150 160 8 叶俊民 软件工程 第二版 M 北京 清华大学出版社 2006 51 73 9 周舸 计算机网络技术基础 M 北京 人民邮电出版社 2014 130 135 10 C Dou K Kakushima P Ahmet et al Resistive switching behavior of a CeO2 based ReRAM ce

温馨提示

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

评论

0/150

提交评论