您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > FTP客户程序设计论文
安徽科技学院课程设计(论文)任务书08级计算机专业计算机班学生王轩遥课程设计(论文)题目:FTP客户程序设计课程设计(论文)内容:指导老师:林华2011年7月3日审核人:林华2011年7月3日批准人:林华2011年7月3日安徽科技学院课程设计(论文)说明书题目FTP客户程序设计08届计算机专业学生姓名:王轩遥指导老师:林华评审人员:林华2011年7月3日课程设计(论文)中文摘要互联网的一大特点是实现信息共享,文件传输是信息共享的十分重要的内容之一。随之出现了许多FTP服务器来共享一些信息资源,编写一个操作简单,方便的FTP客户端来下载这些资源受到了人们的极大欢迎。FTP是Internet上用来传送文件的协议。它是为了我们能够在Internet上互相传送文件而制定的文件传送标准,规定了Internet上文件如何传送。通过FTP协议,我们就可以跟Internet上的FTP服务器进行文件的上传或下载。本文以实现一个简单易用的FTP客户端为目标,通过分析FTP协议的基本工作原理和FTP的数据传输原理,研究如何使用C++Builder工具对FTP客户端进行设计,用C++Builder软件提供的一个支持可视化编程的开发环境,从而实现了对FTP客户端的开发。关键词C++BuilderFTP协议客户端文件传输协议课程设计(论文)外文摘要TitleTheDesignofFTPClientAbstractThepredominantcharacteristicofnetworkisinformationresourcessharing.Documenttransmissionisanimportantcomponentelement.Becauseofthis,manyFileTransferProtocol(FTP)serversappeared,andwonitswayintofavor.FTPprotocolisusedtotransferfilesontheInternet.ItisforustotransmissionofdocumentsandthedevelopmentoffilewitheachotherontheInternet,theprovisionsoftheInternetonhowtosenddocuments.ThroughtheFTPprotocol,wecanlinktheFTPserveroftheInternettouploadordownloadfiles.Inthispaper,inordertoachieveaneasy-to-useFTPclientasthegoal,FTPprotocolbyanalyzingthebasicworkingprincipleandtheprincipleofFTPdatatransfertostudyhowtousetheC++BuildertoolforFTPclienttodesign.C++Buildersupportsoftwareprovidesavisualprogrammingdevelopmentenvironment,inordertoachievetheFTPclientdevelopment.KeywordsC++BuilderFTPprotocolFTPClient1引言21世纪是网络的时代,是信息的时代,是多媒体的时代。Intertnet技术的迅猛发展与普及,推动了世界范围的信息传输和信息交流。随着Internet的发展,Internet将提供越来越多的服务。但就目前而言,网民使用较多的主要有下列服务:电子邮件(E-mail),文件传输(FTP),远程登录(Telnet),万维网(WorldWideWeb),新闻组(Newsgroup/Usenet)和电子公告牌(BBS),聊天系统(chat)。Internet如此流行,其中FTP功不可没。FTP协议即文件传输协议(FileTransterPortocol),是TCP/IP体系结构中的一个重要协议,专门用于局域网或Internet中服务器和客户端之间进行文件传输。1.1课题背景FTP是Internet上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。用FTP将信息下载到本地是一件十分普遍的事。也随之出现了许多下载软件。尽管远程登录(Telnet)提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机中的文件方便。如果用户想使用其它计算机上的文件,最理想的方法就是把它COPY到自己的计算机中,以便在本地计算机上操作。FTP正是完成这项工作的工具,你可以在任意一个经过文件传输协议(FTP)访问的公共有效的联机数据库或文档中找到你想要的任何东西。全世界现在已有1000多个(96年的数据)FTP文件服务器对所有INTERNET用户开使用,用户可以通过与Internet相连到远程计算机,把自己需要的文件传输过来或是把自己的收集传输上去与他人共享。传统的数据库应用系统采用的是客户机/服务器(Client/Server)模式,有高度的交互性,高效的用户界面等优点。1.2国内外研究现状1971年,第一个FTP的RFC(RFC114)由A.K.Bhushan在1971年提出,同时由MIT与Harvard实验实现;1972年,RFC172提供了主机间文件传输的一个用户级协议;1973年2月,在长期讨论(RFC265,RFC294,RFC354,RFC385,RFC430)后,出现了一个官方文档RFC454;1973年8月,出现了一个修订后的新官方文档RFC542,确立了FTP的功能、目标和基本模型。当时数据传输协议采用NCP;1980年,由于底层协议从NCP改变为TCP,RFC765定义了采用TCP的FTP;1985年,一个作用持续至今的官方文档RFC959(STD9)出台。用FTP传输文件,本来用户事先应在远方系统注册,但后来为了便于大家获取资源,FTP在互联网上有一种特殊的也是非常广泛的应用是匿名FTP(anonymousFTP)。通过Internet,任何用户可以使用FTP和一个公用账号(通常账号名是anonymous)去获得一些公用资源。在Internet上目前有许许多多的这种公用计算机,我们把这种用来做匿名FTP服务的计算机称作FTP服务器(FTPSite),对每一个联入Internet的用户,只要知道这些FTP服务器的地址,就可以与它们连接并获取上面各种资源。由于FTP操作简单实用,开放性强,且能充分利用Internet来进行信息传递与交流,所以目前越来越多的FTP服务器连入Internet,这样越来越多的资源就可以通过匿名FTP来获得。1.3本课题研究的意义进一步熟悉C++Builder开发环境,掌握一定开发Windows应用程序技术。对提高自己的C++Builder语言编程能力,熟悉ftp工作过程。制作一个界面友好,快速,稳定的下在软件。对信息的快速共享起着一定的作用。让用户能第一时间和别人共同分享信息资源。并希望能给FTP客户端编写初学者一些帮助。1.4研究方法用C++Builder开发FTP客户端软件。根据现有的FTP软件进行设计与实现。综合以前所学的相关知识:包括计算机网络技术、TCP/IP详解、信息安全相关知识等;查阅Windows应用程序开发资料,学习C++Builder语言,FTP通信过程。2FTP简介2.1FTPFTP是TCP/IP协议组中的协议之一,是英文FileTransferProtocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP协议采用客户机/服务器(Client/Sever)模式,由FTP客户端程序和FTP服务器端程序组成。使用时,先启动FTP客户端程序与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。但是FTP有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。但匿名FTP服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问者进行跟踪。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载(download)文件,而不允许上载(upload)文件。也就是说,用户只能从匿名FTP主机拷贝其需要的文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登录。2.2FTP工作模式FTP支持两种模式,一种方式叫做Standard(也就是PORT方式,主动方式),一种是Passive(也就是PASV,被动方式)。Standard模式FTP的客户端发送PORT命令到FTP服务器。Passive模式FTP的客户端发送PASV命令到FTPServer。1.主动方式的FTP工作过程:Port模式FTP客户端首先和FTP服务器的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP20端口连接至客户端的指定端口发送数据。FTPserver必须和客户端建立一个新的连接用来传送数据。针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:1).任何端口到FTP服务器的21端口(客户端初始化的连接SC)。2).FTP服务器的21端口到大于1023的端口(服务器响应客户端的控制端口SC)。3).FTP服务器的20端口到大于1023的端口(服务器端初始化数据连接到客户端的数据端口SC)。4).大于1023端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口SC)。连接过程如下图1:图1FTP主动模式连接过程图在第1步中,客户端的命令端口与FTP服务器的命令端口建立连接,并发送命令“PORT1027”。然后在第2步中,FTP服务器给客户端的命令端口返回一个ACK。在第3步中,FTP服务器发起一个从它自己的数据端口(20)到客户端先前指定的数据端口(1027)的连接,最后客户端在第4步中给服务器端回一个ACK。主动方式FTP的主要问题实际上在于客户端。FTP的客户端并没有实际建立一个到服务器数据端口的连接,它只是简单的告诉服务器自己监听的端口号,服务器再回来连接客户端这个指定的端口。对于客户端的防火墙来说,这是从外部系统建立到内部客户端的连接,这是通常会被阻塞的。2.被动方式的FTP是这样的:在被动方式FTP中,命令连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的进入方向连接被防火墙过滤掉的问题。当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT
本文标题:FTP客户程序设计论文
链接地址:https://www.777doc.com/doc-3524839 .html