SuihuaUniversityGraduationPaperASmallFTPSystemBasedontheVC++StudentnameCaoJianjianStudentnumber200450433MajorComputerScience&TechnologySupervisingteacherZhaoWeijiSuihuaUniversityI摘要本程序是一个小型FTP服务器系统,实现了FTP服务器所应该具备的大多数功能,包括用户的登录,文件的上传、下载、删除,选择数据传输模式、目录选择等,并给出相应的提示。通过该程序的开发,基本上实现了一个FTP服务器所应该具有的功能,能够解释一般的FTP命令,并且符合RFC959规范。本软件的设计,即从需求分析,软件设计到软件功能实现,都始终遵循软件工程的思想和方法。本文中采用了大量的图表说明,使文章明确清晰,便与阅读和理解。本程序采用VC++6.0作为开发工具,设计步骤采用自顶向下的方法。关键词:上传;下载;VC++;FTP服务器IIAbstractThisprocedureisasmallFTPserversystem,carryingoutmostfunctionsthatFTPservershouldhave,includingtheloggingofthecustomer,documentofupload,download,delete,thechoicedatadeliversthemode,thecataloguechoice...etc.,andhinthomogonouslyfor.Passthedevelopmentofthatprocedure,carriedoutthefunctionthataFTPservershouldhavebasically,canexplainthegeneralorderofFTP,andmatchthenormofRFC959.Thedesignofthissoftware,namelyanalyticalfromtheneed,thesoftwaredesignsthesoftwarefunctiontocarryout,allfollowingthethoughtandthemethodofthesoftwareengineeringalways.Itadoptedagreatdealofchartinthistextelucidation,makearticledefinitelyclear,thenwithreadandcomprehend.ThisprocedureadoptstheVC++6.0conductandactionsdevelopmenttool,designstepadoptionfromamethodforgetdown.Keywords:upload;download;VC++;FTPserverIII目录摘要…………………………………………………………………………………………IAbstract…………………………………………………………………………………II前言…………………………………………………………………………………………1第1章FTP协议与原理…………………………………………………………………21.1FTP简介…………………………………………………………………………21.2FTP的工作原理…………………………………………………………………21.3FTP运行原理……………………………………………………………………31.4FTP文件传输连接类型…………………………………………………………5第2章开发环境及工具介绍……………………………………………………………82.1C语言概述………………………………………………………………………82.2VC++介绍…………………………………………………………………………82.3VC++6.0集成开发环境…………………………………………………………82.4MFC介绍…………………………………………………………………………92.5SOCKET……………………………………………………………………………9第3章FTP服务器需求分析……………………………………………………………113.1FTP文件传输的需求……………………………………………………………113.2应解决的问题…………………………………………………………………123.3功能分析………………………………………………………………………12第4章系统设计与实现…………………………………………………………………134.1功能要求………………………………………………………………………134.2开发工具………………………………………………………………………134.3主要功能与实现………………………………………………………………13第5章系统测试…………………………………………………………………………225.1系统可能出现的问题与不足…………………………………………………225.2采用的测试类型………………………………………………………………225.3测试的过程与结果分析………………………………………………………22结论………………………………………………………………………………………24IV参考文献…………………………………………………………………………………25附录………………………………………………………………………………………26致谢………………………………………………………………………………………33绥化学院2008届本科生毕业论文1前言进入信息时代,随着互联网普及,只要接上网络,就能从网上找到庞大的数据资源,其内容包罗万象,可以说几乎任何人都可以在Internet资源中找到自己所需要的信息资源。有了网络,使用者不但可以浏览各种各样的信息资源,还能够将自己感兴趣的资源下载到本地机上。由于网络的带宽及各种服务的限制,单纯从页面上下载显得又慢又不可靠,所以就有许多FTP工具提供出来。从根本上说,FTP就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP采用的是现在流行的Client/Server模式,由FTP客户端和FTP服务器端程序组成。通常服务器端是远程端点,用户可以通过Internet网络连接到远程的FTP服务器站点。服务器的功能是主要的。只有当FTP服务器支持各种协议和指令时,才能够开发相应的客户端程序。下面我们就来介绍一下我自己开发一个小型FTP服务器的过程与思路。绥化学院2008届本科生毕业论文2第1章FTP协议与原理1.1FTP简介FTP(FileTransferProtocol)是文件传输协议的简称。直到1994年,当时,文件传输协议(FTP)是和e-mail一样最广泛应用的Internet客户程序。它被用于作为访问Internet主机文件的一个远程外壳。使用FTP可以连接到一个FTP服务器,在可用的目录间游历,并且传输文件。一个FTP站点可以是公用的,私有的,或者两者兼有之。使用一个私有的账号,你可以拥有访问整个网络的目录结构,或者只是特定的区域权限。Internet同时也是一个拥有很多允许任何人连接和传输文件的FTP服务器的中心,不管他们有没有主机上的账号。这叫做匿名FTP。当你登录到一个匿名FTP站点时,你通常使用“anonymous”作为你的用户名,“guest”或你的e-mail地址作为密码。例如,匿名FTP经常用于发布大量的公用领域或共享软件。其中一个著名的公用FTP站点是ftp.cica.indiana.edu。FTP的主要设计目的是用于程序之中,不过FTP程序自身已经成为任何一个TCP/IP实施的重要部分。当你在Windows3.11、Windows95或WindowsNT中使用Microsoft的TCP/IP驱动程序时,FTP.exe将被安装。实际上,FTP已经包含于Netscape和其它的浏览器中,因此你可以使用浏览Web的程序同时浏览FTP服务器[1]。1.2FTP的工作原理1.FTP工作原理FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的“三次握手”的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。采用FTP协议可使Internet用户高效地从网上的FTP服务器下载大信息量的数据文件,将远程主机上的文件拷贝到自己的计算机上。以达到资源共享和传递信息的目的。由于FTP的使用使得Internet上出现大量为用户提供的下载服务器。Internet成为了一个巨型的绥化学院2008届本科生毕业论文3软件仓库。FTP在文件传输中还支持断点续传功能,可以大幅度地减小CPU和网络带宽的开销。2.FTP服务器登录方式的分类我们已经知道FTP服务实际上就是将各种可用资源放在各个FTP主机中,网络上的用户可以通过Internet联到这些主机上,并且使用FTP(文件传送协议)将想要的文件拷回到自己的计算机中。在使用FTP传送文件之前,最主要的步骤就是如何联入各Internet上的FTP服务器。联入的主要步骤也就是登录(Login)的过程。通常用户在欲下载的FTP服务器上输入许可的帐号(account)和密码(password),得到该服务器许可后,即可进入。FTP服务器分为两种:其一,为一般的FTP服务器,进入这种服务器时必须拥有该主机的帐号和密码;其二,为匿名FTP服务器(称为anonymousFTP服务器)登录此类FTP服务器时,用户只要以“guest”或“anonymous”为帐号,并以自己的E-mail地址为密码,即可进入该FTP服务器主机,任意浏览和下载文件。当用户登录到某个FTP服务器时,如果用“guest”或“anonymous”为帐号,均无法进入,则表明该服务器不是匿名FTP服务器。实际上,匿名FTP只是FTP中的一种,它是一种开放式帐号的FTP服务器,它可以为网络上的任何使用者所利用,与非匿名的FTP不同的只是登录时的帐号为“anonymous”,而密码为任一用户的E-mail地址。现在,某些站点还明确要求使用电子邮件地址作为匿名用户密码,而不接受“guest”这样的密码。提供电子邮件地址,有助于让站点的拥有者了解到是哪些人在使用他们的服务。1.3FTP运行原理FTP的工作原理与其他许多网络实用程序一样,也是基于客户/服务器模式。互联网文件传输协议(FileTransferProtocol)标准是在FTC959说明的。该协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的标准。一般来说,要传输文件的用户需先经过认证以后才能登录ftp服务器,访问在远程服务器的文件。大多数的FTP服务器往往提供一个guest的公共帐户来允许没有FTP服务器帐户的用户可以访问该FTP服务器。一个FTP会话通常包括五个软件元素的交互。就模型而言,从1973年以来并没有什么变化。如图1-1所示。绥化学院2008届本科生毕业论文4图1-1FTP协议模型下表是交互元素列表表1-2交互元素列表软件要素名称应用说明用户接口提供了一个用户接口并使用客户端协议解释器的服务USERPI客户端协议解释器,向远程服务器协议机发送命令并且驱动客户传输过程UPTP客户端数据传输协议,负责实现与远端服务器进行数据传输,并与客户端本地文件系统交互SPI服务器协议解释器,响应客户协议机发出的命令,并驱动服务器端数据传输过程SDTP服务器数据传输协议负责和客户进行数据传输以及服务器端文件系统通信在一个FTP会话中,会存在两个独立的网络连接,一个是由两端的PI使用的,另一个是由两端的DTP使用的。PI之间的连接一般被称作控制连接(controlconnection),DTP之