河南理工大学客户端FTP软件课程设计_第1页
河南理工大学客户端FTP软件课程设计_第2页
河南理工大学客户端FTP软件课程设计_第3页
河南理工大学客户端FTP软件课程设计_第4页
河南理工大学客户端FTP软件课程设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

河南理工大学计算机科学与技术学院课程设计报告2015 2016 学年第一学期课程名称: 计算机网络 设计题目: 客户端 FTP 软件 姓 名: 顾 心 安 学 号: 11111111111111 专业班级: 计算机本 1501 指导教师: 刘 琨 2016 年 1 月 15 日目录1 绪论 .11.1 研究背景 .11.2 主要工作 .21.3 课程设计的总体结构 .22 FTP 基本知识介绍 .22.1 FTP 工作原理 .22.2 FTP 工作模式 .32.3 FTP 传输协议和服务器系统 .52.3.1 传输协议 .52.3.2 服务器系统 .53 FTP 客户端的设计 .63.1 设计目的及工具选择 .63.1.1 设计目的 .63.1.2 设计工具 .63.2 客户端主要模块设计 .73.2.1 客户端连接模块 .73.2.2 上传下载模块 .83.2.3 下载模块 .104 调试与操作说明 .114.1 运行方法 .114.2 运行结果 .115 课程设计总结与体会 .14参考文献 .151 使用 C+实现 FTP 客户端的设计FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在 FTP 的使用当中,用户经常遇到两个概念:“下载“(Download)和 “上传“(Upload)。“下载“文件就是从远程主机拷贝文件至自己的计算机上;“上传“文件就是将文件从自己的计算机中拷贝至远程主机上。用 Internet 语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。本文以实现一个简单易用的 FTP 客户端为目标,通过分析 FTP 协议的基本工作原理和 FTP 的数据传输原理,研究如何使用 C+ 工具对 FTP 客户端进行设计,选择 C+来实现 FTP 客户端程序的上传下载等主要功能, 并用相应软件提供的一个支持可视化编程的开发环境,从而实现了对 FTP 客户端的实现。1 绪论1.1 研究背景FTP 是 Internet 上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。用 FTP 将信息下载到本地是一件十分普遍的事。也随之出现了许多下载软件。尽管远程登录(Telnet)提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机中的文件方便。如果用户想使用其它计算机上的文件,最理想的方法就是把它 COPY 到自己的计算机中,以便在本地计算机上操作。FTP 正是完成这项工作的工具,你可以在任意一个经过文件传输协议(FTP)访问的公共有效的联机数据库或文档中找到你想要的任何东西。全世界现在已有 1000 多个(96年的数据)FTP 文件服务器对所有 INTERNET 用户开使用,用户可以通过与Internet 相连到远程计算机,把自己需要的文件传输过来或是把自己的收集传输上去与他人共享。传统的数据库应用系统采用的是客户机/服务器(Client/Server)模式,有高度的交互性,高效的用户界面等优点。同时 C+也是一门比较热的计算机语言,用 C+来设计 FTP 客户端,具有一定的意义。2 1.2 主要工作通过客户端可以实现文件的上传和下载。其促进文件的共享(计算机程序或数据)、鼓励间接或者隐式的使用远程计算机、向用户屏蔽不同主机中各种文件存储系统的细节和可靠和高效的传输数据。1.3 课程设计的总体结构该课程设计的第一部分绪论主要说明了研究背景、主要工作和本文结构。第二部分说明了有关 FTP 的相关知识。第三部分系统设计,绘制了系统的模块图、流程图和模块的实现。第四部分系统的测试与数据分析,说明了测试遇到的问题、解决方法及系统进一步的优化。第五部分是本课程设计的总结和体会。2 FTP 基本知识介绍2.1 FTP 工作原理FTP(File Transfer Protocol),是文件传输协议的简称。用于Internet 上的控制文件的双向传输。同时,它也是一个应用程序。用户可以通过它把自己机器与世界各地所有运 FTP 协议的服务器相连,访问服务器上的资源和信息。FTP 协议在 TCP/IP 协议栈中的位置如下表:HTTP FTP TELN SMTP DNS TFTP NMP 应用层TCP UDP 传输层IP 互联网络层X25 ISDN LAN WLAN FDDI ATM 网络接口层表 1 TCP/IP 协议栈当启动FTP从远程计算机拷贝文件时,事实上启动了两个程序:一个本地机器上的FTP客户端程序,它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应请求把你指定的文件传送到你的计算机中。FTP采用“客户端/服务器”方式,用户要在自己的本地计算机上安装FTP客户端程序。从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP协议采用客户端/服务器(Client/Sever)模式,由FTP客户端程序和FTP服务器端程序组成。使用时,先启动FTP客户端程序与远程3 主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。但是FTP有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。但匿名FTP服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问者进行跟综。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载文件,而不允许上载文件。也就是说,用户只能从匿名FTP主机拷贝其需要的文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登陆。2.2 FTP 工作模式FTP 采用C/S(客户端/服务器)模式进行通信,但与其他的C/S 模式网络通信协议又有一个很大的区别。通常在进行HTTP 通信或是TELNET 通信的时候,只需要一个端口进行通信。即客户端只需要连接一个端口进行数据通信。如TELNET 的默认端口是23,用户从头到尾都只需使用这个端口。但是FTP 通信除了有一个默认端口21 之外,还需要其他的端口。其中默认端口(21)主要进行控制连接,进行命令协议和服务器端的响应码的传输;另外一个非标准端口主要进行数据传递,如文件的上载、下载等。至于非标准端口的产生则要根据用户选择的连接模式而定:如果客户选择的是主动模式(PORT),则需要用户端提供给服务器一个IP 地址和一个非标准端口;而如果用户采用被动模式(PASV),则服务器端需要提供给客户端一个IP 地址和一个非标准端口。FTP客户机向服务器的FTP控制端口(默认是21)发送请求,服务器接受连接,建立一条命令链路,当需要传送数据时候,客户端在命令链路上用PORT命令告诉服务器:“我打开了某个端口,你过来连接我。”于是服务器从20端口向客户端的改端口发送连接请求,建立一条数据链路来传送数据。在数据链路建立的过4 程中是服务器主动请求,所以称为主动模式。FTP客户端向服务器的FTP控制端口发送连接请求,服务器接收连接,建立一条命令链路,当需要传送数据时候,服务器在命令链路上用PASV命令告诉客户端;“我打开了某端口,你过来连接我。”于是客户端向服务器的该端口发送连接请求,建立一条数据链路来传送数据。在数据链路建立的过程中是服务器被动等待客户端请求,所以称为被动模式。下表是几个著名的TCP 端口号:TCP 端口号 关键字 描述20 FTP-DATA 文件传输协议数据21 FTP 文件传输协议控制23 TELENET 远程登录协议25 SMTP 简单邮件传输协议53 DOMAIN 域名服务器80 HTTP 超文本传输协议110 POP3 邮局协议119 NNTP 新闻传送协议表2 TCP 端口号FTP 中字节大小有两个:逻辑字节大小和用于传输的字节大小。后者通常是8 位,而前者可不一定是多少了。传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。控制连接是建立在USER-PIT 和SERVER-PI 之间用于交换命令与应答的通信链路。数据连接是传输数据的全双工连接,传输数据可以发生在服务器DTP 和用户DTP之间也可以发生在两个服务器DTP 之间,FTP 可以传输非连续的文件,这些文件的一部分称为页。服务器DTP 代表一种传输过程,它通常处于“主动”状态,它和侦听端口建立数据连接,它还可以为传输和存储设置参数,并根据PI 的指令传输数据。当然,DTP 也可以转入“被动”状态。服务器FTP 进程,它是和用户FTP 进程一起工作的,它由PI 和DTP 组成。在开始阶段,标准FTP 命令由用户PI 产生并通过控制连接传送到服务器进程。服务器PI 向用户PI 返回标准应答。FTP 命令指定数据连接参数和文件系统操作。用户DTP 在特定数据端口侦听,服务器开始数据连接并以指定的参数开始数据5 传输。数据端口不必在开始FTP 命令的机器上,但用户或用户FTP 进程必须确定它在指定的数据端口上侦听.这个数据连接是全双工的。2.3 FTP 传输协议和服务器系统以下载文件为例,当你启动FTP从远程计算机拷贝文件时实际上启动了两个程序:一个本地机上的FTP客户程序,它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序,操作上要简洁方便的多。2.3.1 传输协议简单地说,支持FTP协议的服务器就是FTP服务器,下面介绍一下什么是FTP协议(即文件传输协议)。一般来说,用互联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容。Internet上早期实现传输文件,并不是一件容易的事,我们知道 Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,而连接在Internet上的计算机有上千万台,并且这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。2.3.2 服务器系统与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。 在FTP的使用当中,用户经常遇到两个概念:“下载“(Download)和“上传6 “(Upload)。“下载“文件就是从远程主机拷贝文件至自己的计算机上;“上传“文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。 使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。 3 FTP 客户端的设计3.1 设计目的及工具选择能够更简单的使用FTP来上传和下载文件,以客户端的形式方便了大家的使用。选择编程工具为C+,因为C+C+语言灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点,与其它语言相比 ,可以直接访问物理地址,与汇编语言相比又具有良好的可读性和可移植性。总得来说,C+语言的主要特点表现在两个方面,一是尽量兼容C,二是支持面向对象的方法。3.1.1 设计目的FTP 早已应用在网络的各个方面,比如我们在访问网络上的资源时,经常会遇到需要连接FTP 服务器来下载,或者你制作了一个网站,想要将其上传至服务器,让大家能够访问它,这个时候就会用到FTP 客户端。虽然平时使用windows 自带的IE 浏览器即可实现对FTP 服务器的访问,但是IE 只是个很粗糙的FTP 客户端。IE 浏览器在6.0 以下的版本不支持PASV 方式访问服务器, 而且IE 浏览器在登录FTP 服务器的时候,无法查看返回的信息,在出错的时候,无法找到错误的原因,因此在使用上很不方便。现在大多数的FTP 客户端软件都是收费版的,而且以英文版居多,使用上操作很复杂,目前流行的有CoreFtp、AceFtp 、Ftp Voyager 等,但是大多数用户并不习惯使用这些软件。本文所设计的FTP 客户端则适合大多数用户使用,界面设计的很简单,使用户可以一目了然,而且具备FTP 客户端的基本功能,7 只需要输入IP地址和用户名及密码就可以作为下载、上传文件的工具来使用。3.1.2 设计工具程序设计中用到的主要工具就是C+,C+是一种面向对象的新一代网络编程语言,它可以在各种不同的机器、操作系统的网络环境中进行开发,具有解释型语言(如Basic语言)和编译型语言(如C语言)的特性。 C+中各种利大于弊的功能和许多很少用到的功能,用C+开发的程序可以

温馨提示

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

评论

0/150

提交评论