当前位置:文档之家› 文件传输系统的设计与实现.

文件传输系统的设计与实现.

JISHOU UNIVERSITY 专业课课程论文文件传输系统的设计与实现题目:作者:学号:所属学院:信息科学与工程学院专业年级:计算机科学与技术总评分:完成时间:文件传输系统的设计与实现摘要互联网的一大特点是实现信息共享,文件传输是信息共享的十分重要的内容之一。

随之出现了许多FTP服务器来共享一些信息资源,编写一个操作简单,方便的FTP客户端来下载这些资源受到了人们的极大的欢迎。

FTP是一种用于在网上传输文件的协议,从原理上说,FTP是一个客户/服务器模式的应用协议。

它用两个连接来实现:一个是控制连接,用来连接服务器和实现文件操作;一个是数据连接,用来实现数据传输。

FTP的实现核心是命令/应答模式,FTP客户端将用户的所有FTP相关请求都转化为FTP服务器可识别的命令,然后发送到服务器,并接收和处理执行完毕后服务器传回的应答。

本程序是一个小型FTP服务器系统,实现了FTP服务器所应该具备的大多数功能,包括用户的登录,文件的上传、下载、删除,选择数据传输模式、目录选择等,并给出相应的提示。

通过该程序的开发,基本上实现了一个FTP服务器所应该具有的功能,能够解释一般的FTP命令,并且符合RFC59规范。

本程序采用VC++6.0作为开发工具,设计步骤采用自顶向下的方法。

关键词:客户端;服务器;下载;上传;FTP目录第一章引言 (1)1.1课题背景及意义 (1)1.2课题研究现状 (1)1.3研究内容 (2)第二章FTP协议与原理 (3)2.1 FTP简介 (3)2.2 FTP的工作原理 (3)2.3 FTP运行原理 (4)2.4 FTP文件传输连接类型 (4)第三章开发环境及工具介绍 (6)3.1 C语言概述 (6)3.2 VC++介绍 (6)3.3 VC++6.0集成环境介绍 (6)第四章FTP服务器需求分析 (8)4.1 FTP文件传输的需求 (8)4.2应解决的问题 (9)4.3功能分析 (9)第五章系统设计与实现 (10)5.1功能要求 (10)5.2开发工具 (10)5.3主要功能与实现 (11)5.4 菜单栏功能模块 (11)5.5 查看功能模块 (13)第六章系统测试 (18)6.1系统可能出现的问题与不足 (18)6.2 采用的测试类型 (18)6.3 测试的过程与结果分析 (18)总结 (20)参考文献 (21)第一章引言1.1课题背景及意义现代科技给我们带了翻天覆地的变化,互联网就是这诸多变化之一,而且它无时不刻包围着你。

可以这样说,21世纪是互联网的世纪。

互联网是人类科技发展史中成长最快的新鲜事物,从诞生到高度发展仅仅用了二十几年,而未来的发展前景更是一片光明。

每个人可能已经感觉到了它的发展,从大大小小的网络公司到各种各样的网上商店、书店、网吧、网上银行等,就连电影院也都搬到了网上,你可以足不出户的欣赏美国大片。

早在20世纪90年代初,internet和world wide web(简称WWW)已经被大家熟知。

最近几年internet的发展更是神速,它已经深深触及到我们的生活和工作的方方面面。

随着许多新兴技术在internet中的推广应用,使用它的自身发展更日趋完善,它为用户也带来了越来多的实惠和便利。

毫不夸张地说,无论你在世界上的哪个角落,只要通过互联网,你就可以同亲人朋友、甚至是陌生人相互交流,而且形式多样。

互发邮件、交换文件、彼此聊天这已经很平常了,而现在随着网络、通信技术的相结合,已经出现了可视电话、网络家电、电子商务等。

网络用户可以通过大大小小的各类网站或主页。

他们已经越来越离不开网络,而且已经把企业网络建设纳入了未来企业发展最重要的环节。

是互联网最大的凝聚力所在,它是一个巴罗万象的信息服务系统。

在生活中,以国际互联网(internet)为主要特征的信息基础设施正在改变人们的生活方式,自选共享已经成为人们生活的迫切需要。

尽管远程登录(telnet)提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机的文件方便。

如果用户想使用其它计算上的文件,最理想的方法就是把它copy 到自己的计算机中,以便在本地计算机上操作。

ftp正是完成这项工作的工具,你可以在任意文件传输协议(ftp)访问的公共有效的联机数据库或文档中找到你想要的任何东西。

1.2课题研究现状1971年,第一个FT的RFC (RFC114 ) 由A. K. Bhushan在1971年提出, 同时由 MIT与Harvard实验实现;1972 年,RFC172提供了主机间文件传输的一个用户级协议;1973年2月,在长期讨论(RFC265,RFC294,RFC354,RFC385 ,RFC4 30)后,出现了一个官方文档 RFC454 ;1973年8月,出现了一个修订后的新官方文档 RFC542 。

确立了FTP的功能、目标和基本模型。

当时数据传输协议采用 NCP;1980年,由于底层协议从NCP 改变为 TCP,RFC765 定义了采用 TCP 的 FTP;1985 年,一个作用持续至今的官方文档 RFC959(STD9)出台。

用FTP传输文件,本来用户事先应在远方系统注册,但后来为了便于大家获取资源,FTP 在互联网上有一种特殊的也是非常广泛的应用是匿名FTP(anonymous FTP).通过Internet,任何用户可以使用FTP和一个公用账号去获得一些公用资源。

在Internet上目前有许许多多的这种公用计算机,我们把这种用来做匿名FTP服务的计算机称作FTP服务器,对每一个连入Internet的用户,只要知道这些FTP服务器的地址,就可以与它们连接并获取上面各种资源。

由于FTP操作简单实用,开放性强,且能充分利用Internet来进行信息传递与交流,所以目前越来越多的FTP服务器连入Internet,这样越来越多的资源就可以通过匿名FTP 来获得。

1.3研究内容文件传输系统是为了满足庞大的计算机网络系统实现文件共享和数据传输的需要而设计的。

本文在VC + + 语言平台上,依据应用层的文件传输协议的基本原理,从切身实际出发,开发了一款文件传输系统。

该系统能登录服务器, 实现文件的下载和上传, 以及文件的添加和删除的相关操作。

在此过程中, 首先ftp客户端将用户名、密码和链接端口发送到指定ip地址,尝试与ftp服务端建立连接;其次 ,登录成功后 ,用户将要传输文件的进行编码,发送到ftp 服务器;最后 ,待数据传输结束, ftp客户端发出QUIT指令,结束ftp连接。

通过前期规划,中期编写代码,后期调试和测试程序, 这款模拟器能实现基本功能 ,但如果为了满足商业化需求,就得我们后期进一步优化。

第二章FTP协议与原理2.1 FTP简介FTP是tcp/ip协议中的协议之一,是英文File Transfer Protocol的缩写。

该协议是Inernet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。

简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称为“下载”文件。

若将文件从自己计算机中国拷贝至远程计算机上,则称之为“上传”文件。

在Tcp/Ip协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20.从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。

FTP协议采用客户机/服务器模式,由FTP客户端程序和FTP服务器端程序组成。

使用时,先启动FTP客户端程序与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给与响应,并执行正确的命令。

但是FTP有一个根本的限制,那就是如果用户在某个主机上没有注册获得授权,既没有用户名和口令,就不能与该主机进行文件传输。

但匿名FTP服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。

用户使用特殊的用户名就可有限制的访问远程主机上公开的文件。

限制许多系统要求用户将邮件地址作为口令,以便更好的对访问者进行跟踪。

出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载文件,而不允许上传文件。

另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。

匿名一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。

人们只要知道特定信息资源的主机地址,就可以匿名FTP登录。

2.2 FTP的工作原理FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的“三次握手”的过程,它带来的意义在于客户与服务器直接的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。

采用FTP协议可使Internet用户高效的从网上的FTP服务器下载大信息量的数据文件,将远程主机上的文件拷贝到自己的计算机上。

以达到资源共享和传递信息的目的。

由于FTP的使用使得Internet上出现大量为用户提供下载服务器。

Internet成为了一个巨型的软件仓库。

在文件传输中还支持断点续传功能,可以大幅度的减小和网络带宽的开销。

2.3 FTP运行原理FTP的工作原理与其他许多网络实用程序一样,也是基于客户/服务器模式。

互联网文件传输协议标准是FTC959在说明的。

该协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的标准。

一般来说,要传输文件的用户需先经过认证以后才能登陆服务器,访问在远程服务器的文件。

大多数的FTP服务器往往提供一个guest的公共账户来允许没有FTP服务器账户用户可以访问该FTP服务器。

一个FTP会话通常包括五个软件元素的交互。

就模型而言,从1973年以来并没有什么变化.FTP协议模型2.4 FTP文件传输连接类型一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。

1·控制连接客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的端口发起一个建立连接的请求,FTP服务器接收来自客户端的请求,完成连接的建立过程,这样的;连接就称为FTP控制连接。

2·数据连接FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。

FTP数据连接就是FTP传输数据的过程,它有两种传输模式:主动传输模式和被动传输模式,如图所示。

主动传输模式和被动传输模式第三章开发环境及工具介绍3.1 C语言概述C语言是在70年代初创建的一种计算机语言,它既有汇编语言可以直接访问机器硬件的功能,又具有高级语言面向用户、可读行好和易于记忆的优点,因此受到广大程序员的欢迎。

相关主题