资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
目录1 绪论21.1 研究背景21.2 主要工作22 相关知识介绍22.1 FTP 工作原理22.2 FTP工作模式32.3 FTP 传输模式42.3.1 ASCII传输方式52.3.2 二进制传输方式53 FTP客户端的设计53.1设计目的及工具选择53.1.1 设计目的53.1.2 设计工具53.2 客户端主要模块设计63.2.1 客户端连接模块63.2.2 上传模块83.2.3 下载模块114 调试与操作说明154.1 运行方法154.2运行结果155 课程设计总结17参考文献17FTP客户端的设计与实现FTP 是Internet 上用来传送文件的协议。它是为了我们能够在Internet 上互相传送文件而制定的文件传送标准,规定了Internet 上文件如何传送。通过FTP 协议,我们就可以跟Internet 上的FTP 效劳器进展文件的上传或下载。本文以实现一个简单易用的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)模式,有高度的交互性,高效的用户界面等优点1.2 主要工作通过客户端可以实现文件的上传和下载。其促进文件的共享计算机程序或数据、鼓励间接或者隐式的使用远程计算机、向用户屏蔽不同主机中各种文件存储系统的细节和可靠和高效的传输数据。2 相关知识介绍2.1 FTP 工作原理FTPFile Transfer Protocol,是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序。用户可以通过它把自己机器与世界各地所有运FTP协议的效劳器相连,访问效劳器上的资源和信息。FTP协议在TCP/IP协议栈中的位置如表1:表1 TCP/IP协议栈HTTP FTP TELN SMTP DNS TFTP NMP应用层TCP UDP传输层IP互联网络层X25 ISDN LAN WLAN FDDI ATM网络接口层当启动FTP从远程计算机拷贝文件时,事实上启动了两个程序:一个本地机器上的FTP客户端程序,它向FTP效劳器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP效劳器程序,它响应请求把你指定的文件传送到你的计算机中。FTP采用“客户端/效劳器方式,用户要在自己的本地计算机上安装FTP客户端程序。从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP协议采用客户端/效劳器(Client/Sever)模式,由FTP客户端程序和FTP效劳器端程序组成。使用时,先启动FTP客户端程序与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。但是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 地址和一个非标准端口。下表是几个著名的TCP 端口号:表2 TCP 端口号TCP 端口号关键字描述20 FTP-DATA文件传输协议数据21FTP文件传输协议控制23TELENET远程登录协议25SMTP简单传输协议53DOMAIN域名效劳器80HTTP超文本传输协议110POP3邮局协议119NNTP新闻传送协议FTP 中字节大小有两个:逻辑字节大小和用于传输的字节大小。后者通常是8 位,而前者可不一定是多少了。传输字节不必等于逻辑字节大小,也不必对数据构造进展解释。控制连接是建立在USER-PIT 和SERVER-PI 之间用于交换命令与应答的通信链路。数据连接是传输数据的全双工连接,传输数据可以发生在效劳器DTP 和用户DTP之间也可以发生在两个效劳器DTP 之间,FTP 可以传输非连续的文件,这些文件的一局部称为页。效劳器DTP 代表一种传输过程,它通常处于“主动状态,它和侦听端口建立数据连接,它还可以为传输和存储设置参数,并根据PI 的指令传输数据。当然,DTP 也可以转入“被动状态。效劳器FTP 进程,它是和用户FTP 进程一起工作的,它由PI 和DTP 组成。在开场阶段,标准FTP 命令由用户PI 产生并通过控制连接传送到效劳器进程。效劳器PI 向用户PI 返回标准应答。FTP 命令指定数据连接参数和文件系统操作。用户DTP 在特定数据端口侦听,效劳器开场数据连接并以指定的参数开场数据传输。数据端口不必在开场FTP命令的机器上,但用户或用户FTP 进程必须确定它在指定的数据端口上侦听.这个数据连接是全双工的。2.3 FTP 传输模式FTP 协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用一样的操作系统无关。假设两台计算机通过ftp 协议对话,并且能访问Internet,你可以用ftp 命令来传输文件。每种操作系统使用上有某一些细微差异,但是每种协议根本的命令构造是一样的。FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。2.3.1 ASCII传输方式假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件尽管字处理文件包含的大局部是文本,其中也包含有指示页尺寸,字库等信息的非打印字符。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进展处理。2.3.2二进制传输方式在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。3FTP客户端的设计3.1设计目的及工具选择3.1.1设计目的FTP 早已应用在网络的各个方面,比方我们在访问网络上的资源时,经常会遇到需要连接FTP 效劳器来下载,或者你制作了一个,想要将其上传至效劳器,让大家能够访问它,这个时候就会用到FTP 客户端。虽然平时使用windows 自带的IE 浏览器即可实现对FTP 效劳器的访问,但是IE 只是个很粗糙的FTP 客户端。IE 浏览器在6.0 以下的版本不支持PASV 方式访问效劳器,而且IE 浏览器在登录FTP 效劳器的时候,无法查看返回的信息,在出错的时候,无法找到错误的原因,因此在使用上很不方便。现在大多数的FTP 客户端软件都是收费版的,而且以英文版居多,使用上操作很复杂,目前流行的有CoreFtp、AceFtp、Ftp Voyager 等,但是大多数用户并不习惯使用这些软件。本文所设计的FTP 客户端那么适合大多数用户使用,界面设计的很简单,使用户可以一目了然,而且具备FTP 客户端的根本功能,可以作为下载、上传文件的工具来使用。3.1.2设计工具 程序设计中用到的主要工具就是VC+6.0开发平台,EasyFZS FTP效劳器3.2 客户端主要模块设计3.2.1 客户端连接模块运行客户端后,首先是连接效劳器,需要输入效劳器IP 地址,用户名和密码,然后点击查询,观察是否连接成功,假设成功那么显示远程文件的列表。 假设连接失败,那么抛出异常,弹出对话框显示出错误,可知如何修改,然后重新输入效劳器IP 地址或用户名或密码,直到连接上效劳器。下列图为客户端连接流程图:查询效劳器判断在显示目录文件列表显示文件进展错误处理用户输入效劳器地址及用户名和密码是否 图3-1 客户端连接流程图主要代码:在OnInitDialog()函数中添加成员变量的初始化代码,对效劳器名、登录用户名和登录口令的控件变量赋初值:BOOL CFTP14Dlg:OnInitDialog()/前面是MFC应用程序向导和类向导自动生成的代码/ TODO: Add extra initialization herem_strFtp=_T();/初始化效劳器域名m_strName=_T();/初始化登录用户名m_strPwd=_T();/初始化登录口令Update
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号