504650711毕业设计(论文)C++小型FTP服务器系统.doc
《504650711毕业设计(论文)C++小型FTP服务器系统.doc》由会员分享,可在线阅读,更多相关《504650711毕业设计(论文)C++小型FTP服务器系统.doc(38页珍藏版)》请在三一办公上搜索。
1、Suihua University Graduation Paper A Small FTP System Based on the VC+Student name Student number 200450433 Major Computer Science & TechnologySupervising teacher Suihua University摘 要本程序是一个小型FTP服务器系统,实现了FTP服务器所应该具备的大多数功能,包括用户的登录,文件的上传、下载、删除,选择数据传输模式、目录选择等,并给出相应的提示。通过该程序的开发,基本上实现了一个FTP服务器所应该具有的功能,能够解
2、释一般的FTP命令,并且符合RFC959规范。本软件的设计,即从需求分析,软件设计到软件功能实现,都始终遵循软件工程的思想和方法。本文中采用了大量的图表说明,使文章明确清晰,便与阅读和理解。本程序采用VC+6.0作为开发工具,设计步骤采用自顶向下的方法。 关键词:上传;下载;VC+;FTP服务器Abstract This procedure is a small FTP server system, carrying out most functions that FTP server should have, including the logging of the customer, do
3、cument of up load, download, delete, the choice data delivers the mode, the catalogue choice.etc., and hint homogonously for . Pass the development of that procedure, carried out the function that a FTP server should have basically, can explain the general order of FTP, and match the norm of RFC959.
4、The design of this software, namely analytical from the need, the software designs the software function to carry out, all following the thought and the method of the software engineering always. It adopted a great deal of chart in this text elucidation, make article definitely clear, then with read
5、 and comprehend.This procedure adopts the VC+6.0 conduct and actions development tool, design step adoption from a method for get down.Key words: upload; download; VC+; FTP server目录摘要IAbstractII前言1第1章 FTP协议与原理21.1 FTP简介21.2 FTP的工作原理21.3 FTP运行原理31.4 FTP文件传输连接类型5第2章 开发环境及工具介绍82.1 C语言概述82.2 VC+介绍82.3 V
6、C+6.0集成开发环境82.4 MFC介绍92.5 SOCKET9第3章 FTP服务器需求分析113.1 FTP文件传输的需求113.2 应解决的问题123.3 功能分析12第4章 系统设计与实现134.1 功能要求134.2 开发工具134.3 主要功能与实现13第5章 系统测试225.1 系统可能出现的问题与不足225.2 采用的测试类型225.3 测试的过程与结果分析22结论24参考文献25附录26致谢33前 言进入信息时代,随着互联网普及,只要接上网络,就能从网上找到庞大的数据资源,其内容包罗万象,可以说几乎任何人都可以在Internet资源中找到自己所需要的信息资源。有了网络,使用者
7、不但可以浏览各种各样的信息资源,还能够将自己感兴趣的资源下载到本地机上。由于网络的带宽及各种服务的限制,单纯从页面上下载显得又慢又不可靠,所以就有许多FTP工具提供出来。从根本上说,FTP就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP采用的是现在流行的Client/Server模式,由FTP客户端和FTP服务器端程序组成。通常服务器端是远程端点,用户可以通过Internet网络连接到远程的FTP服务器站点。服务器的功能是主要的。只有当FTP服务器支持各种协议和指令时,才能够开发相应的客户端程序。下面我们就来介绍一下我自己开发一个小型FTP服务器的过程与思路。第1章 FT
8、P协议与原理1.1 FTP简介FTP(File Transfer Protocol)是文件传输协议的简称。直到1994年,当WWW掌管Internet时,文件传输协议(FTP)是和e-mail一样最广泛应用的Internet客户程序。它被用于作为访问Internet主机文件的一个远程外壳。使用FTP可以连接到一个FTP服务器,在可用的目录间游历,并且传输文件。 一个FTP站点可以是公用的,私有的,或者两者兼有之。使用一个私有的账号,你可以拥有访问整个网络的目录结构,或者只是特定的区域权限。Internet同时也是一个拥有很多允许任何人连接和传输文件的FTP服务器的中心,不管他们有没有主机上的账
9、号。这叫做匿名FTP。当你登录到一个匿名FTP站点时,你通常使用“anonymous”作为你的用户名,“guest”或你的 e-mail地址作为密码。例如,匿名FTP经常用于发布大量的公用领域或共享软件。其中一个著名的公用FTP站点是ftp.cica.indiana.edu。FTP的主要设计目的是用于程序之中,不过FTP程序自身已经成为任何一个TCP/IP实施的重要部分。当你在Windows 3.11、Windows95或Windows NT中使用Microsoft的TCP/IP驱动程序时,FTP.exe将被安装。实际上,FTP已经包含于Netscape和其它的WWW浏览器中,因此你可以使用浏
10、览Web的程序同时浏览FTP服务器1。1.2 FTP的工作原理1FTP工作原理FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的“三次握手”的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。采用FTP协议可使 Internet用户高效地从网上的FTP服务器下载大信息量的数据文件,将远程主机上的文件拷贝到自己的计算机上。以达到资源共享和传递信息的目的。由于FTP的使用使得Internet上出现大量为用户提供的下载服
11、务器。Internet成为了一个巨型的软件仓库。FTP在文件传输中还支持断点续传功能,可以大幅度地减小CPU和网络带宽的开销。2FTP服务器登录方式的分类我们已经知道FTP服务实际上就是将各种可用资源放在各个FTP主机中,网络上的用户可以通过Internet联到这些主机上,并且使用FTP(文件传送协议)将想要的文件拷回到自己的计算机中。在使用FTP传送文件之前,最主要的步骤就是如何联入各Internet上的FTP服务器。联入的主要步骤也就是登录(Login)的过程。通常用户在欲下载的FTP服务器上输入许可的帐号(account)和密码(password),得到该服务器许可后,即可进入。FTP服
12、务器分为两种: 其一,为一般的FTP服务器,进入这种服务器时必须拥有该主机的帐号和密码;其二,为匿名FTP服务器(称为anonymous FTP服务器)登录此类FTP服务器时,用户只要以“guest”或“anonymous”为帐号,并以自己的E-mail地址为密码,即可进入该FTP服务器主机,任意浏览和下载文件。当用户登录到某个FTP服务器时,如果用“guest”或“anonymous”为帐号,均无法进入,则表明该服务器不是匿名FTP服务器。实际上,匿名FTP只是FTP中的一种,它是一种开放式帐号的FTP服务器,它可以为网络上的任何使用者所利用,与非匿名的FTP不同的只是登录时的帐号为“ano
13、nymous”,而密码为任一用户的E-mail地址。现在,某些站点还明确要求使用电子邮件地址作为匿名用户密码,而不接受“guest”这样的密码。提供电子邮件地址,有助于让站点的拥有者了解到是哪些人在使用他们的服务。1.3 FTP运行原理FTP的工作原理与其他许多网络实用程序一样,也是基于客户/服务器模式。互联网文件传输协议(File Transfer Protocol) 标准是在FTC959说明的。该协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的标准。一般来说,要传输文件的用户需先经过认证以后才能登录ftp服务器,访问在远程服务器的文件。大多数的FTP服务器往往提供一个guest
14、的公共帐户来允许没有FTP服务器帐户的用户可以访问该FTP服务器。一个FTP会话通常包括五个软件元素的交互。就模型而言,从1973年以来并没有什么变化。如图1-1所示。图1-1 FTP协议模型下表是交互元素列表表1-2交互元素列表软件要素名称应用说明用户接口提供了一个用户接口并使用客户端协议解释器的服务USERPI客户端协议解释器,向远程服务器协议机发送命令并且驱动客户传输过程UPTP客户端数据传输协议,负责实现与远端服务器进行数据传输,并与客户端本地文件系统交互SPI服务器协议解释器,响应客户协议机发出的命令,并驱动服务器端数据传输过程SDTP服务器数据传输协议负责和客户进行数据传输以及服务
15、器端文件系统通信在一个FTP会话中,会存在两个独立的网络连接,一个是由两端的PI使用的,另一个是由两端的DTP使用的。PI之间的连接一般被称作控制连接(control connection),DTP之间的连接被称作数据连接(data connection)。通常情况下,ftp服务器监听端口号2 1来等待控制连接建立请求,当客户连接请求到达,会在客户和ftp服务器之间建立一个控制连接。而数据连接端口号的选择依赖于控制连接上的命令,通常是客户发送一个控制消息来指定客户需要建立一个数据连接来传输ftp数据(如下载/上载一个文件,显示当前目录的内容等等,都需要建立数据连接来传输数据),在该消息中,指定
16、了客户监听并等待连接的端口号,而服务器从控制连接收到该命令,向客户端发起一个连接请求到消息中指定的端口号,客户端收到该请求以后就会建立一个数据连接。连接建立以后,服务器或客户就会主动通过该连接发送数据(可能是要传输的文件,也可能是用户在命令行上发出的IS命令的输出)。1.4 FTP文件传输连接类型一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。1控制连接客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的TCP 21端口发起一个建立连接的请求,FTP服务器接受来自客户端的请求,完成连接的建立过程,这样的连
17、接就称为FTP控制连接。2数据连接FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。FTP数据连接就是FTP传输数据的过程,它有两种传输模式:主动传输模式(Active)和被动传输模式(PASSIVE),如图1-3所示。图1-3主动传输模式和被动传输模式1)主动传输模式当FTP的控制连接建立,客户提出目录列表、传输文件时,客户端发出PORT命令与服务器进行协商,FTP服务器使用一个标准端口20作为服务器端的数据连接端口(ftp-data),与客户建立数据连接。端口20只用于连接源地址是服务器端的情况,并且端口20没有监听进程来监听客户请求。 在主动传输模式下,FTP的
18、数据连接和控制连接方向相反,由服务器向客户端发起一个用于数据传输的连接。客户端的连接端口由服务器端和客户端通过协商确定。主动传输模式下,FTP服务器使用20端口与客户端的暂时端口进行连接,并传输数据,客户端只是处于接收状态。2)被动传输模式 当FTP的控制连接建立,客户提出目录列表、传输文件时,客户端发送PASV命令使服务器处于被动传输模式,FTP服务器等待客户与其联系。FTP服务器在非20端口的其它数据传输端口上监听客户请求。 在被动传输模式下,FTP的数据连接和控制连接方向一致,由客户端向服务器发起一个用于数据传输的连接。客户端的连接端口是发起该数据连接请求时使用的端口。当FTP客户在防火
19、墙之外访问FTP服务器时,需要使用被动传输模式。被动传输模式下,FTP服务器打开一个暂态端口等待客户端对其进行连接,并传输数据,服务器并不参与数据的主动传输,只是被动接受。到此为止我们介绍FTP工作原理,下节将介绍FTP命令。1.5 FTP命令 FTP的主要操作都是基于各种命令基础之上的。常用的命令有:1)USER:指用户名,它带一个参数。格式为:USER username2)PASS:指明与用户名对应的密码,带一个参数。格式为:PASS password3)LIST: pathname参数表示要列文件的目录路径名,若不带参数,刚使用当前目录PORT:指明数据连接的端口号,带六个参数。格式为:
20、PORT h1,h2,h3,h4,p1,p24)QUIT:由于要求传输文件时有登陆的过程,断开连接到应有相应的注销过程。这个命令就是从服务器上注销的过程,如果服务器收到该命令时,没有文件正在传达室输,刚断开控制,连接如果有文件正在传输,刚控制连接仍然保持,直到收到有关传输结果的应答时,服务器才断开连接。5)RETR:取得文件这条命令是FTP事务是用得最多的命令,在请求下载文件时都有会用到。6)STOR:存放文件。7)WYWT:请求服务器返回系统类型。8)TYPE:表示文件类型,共有四种,所带参数也有四种,A,E ,I ,L 分别对应ASCII,EBCDIC,IMAGB和LOCAL类型。格式为:
21、TYPE type9)CMD:请求更改服务器的当前目录这各命令带一个参数,参数表示要更改的目录名。10)DELE:请求删除服务器上的文件。11)MKO:请求在服务器上新建一个目录,这条命令带一个参数指明要建立的目录名。 第2章 开发环境及工具介绍2.1 C语言概述C语言是在70年代初创建的一种计算机语言,它既有汇编语言可以直接访问机器硬件的功能,又具有高级语言面向用户、可读性好和易于记忆的优点,因此受到广大程序员的欢迎。C是一种结构化的程序设计语言。它由顺序、选择和循环三种基本结构组成,便于实现由上到下、逐步细化的结构化程序设计。因此,用C编写的程序具有容易理解和便于维护的优点。C语言的函数结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 504650711 毕业设计 论文 C+ 小型 FTP 服务器 系统
链接地址:https://www.31ppt.com/p-2396985.html