《FTP客户端的设计与实现.docx》由会员分享,可在线阅读,更多相关《FTP客户端的设计与实现.docx(21页珍藏版)》请在第壹文秘上搜索。
1、FTP客户端的设计及实现摘要FTP是Internet上用来传送文件的协议。它走为了我们能够在Internet上相互传送文件而制定的文件传送标准,规定了Internet上文件如何传送。通过FTP协议,我们就可以跟Internet上的FTP服务器进行文件的上传或下载。本设计以实现一个前洁易用的FTP客户端为目标,通过分析FTP协议的基本工作原理和FTP的数据传输原理,探讨如何运用VC+语言对FTP客户端进行设计,用ViSUalStUdi。20行设计和实现了FTP客户端的开发。关键词FTP的工作原理:VC+:FTP客户端1绪论1. 1课题背景FTP是互联网上运用最广泛的文件传输协议。在互联网早期曾占
2、据整个互联网通信的三分之一,它解决了在不同操作系统下处理文件格式的不兼容性。传统方式须要在DOS下输入吩咐,对于一般用户是件极困难的事。但有了FTP客户端软件后,只要轻点几下鼠标就可以完成全部操作。FTP客户端应当包含以下功能:登录,阅读书目,上传和下载。它已成为人们不行缺少的软件之一。1.2 探讨现状FTP服务是Internet上最早应用于主机之间进行数据传输的基本服务之-O起初,FTP并不是应用于IP网络上的协议,而是20世纪6080年头美国国防部组建的ARPANET网络中,用于计算机间的文件传输的协议。FTp服务的一个特别重要的特点是其实现可以独立于平台,也就是说在UNlX、DOS、Wi
3、ndows等操作系统中都可以实现FTP的客户端和服务器、尽管目前已经普遍采纳HTTP方式传送文件,但FTP仍旧是跨平台干脆传送文件的主要方式。0前市面上可通过正规渠道获得的成熟的FTP软件如SerVe1.U、CUteftp、Transmit.FIaShfW等都是国外开发的,须要注册、付费运用。从其他渠道获得的FTP软件,则存在平安方面的问题。国内也很难找到免费、平安的FTP软件。虽然操作系统有自带的FTP软件,但它是基于吩咐行的,没有友好的用户操作界面,对用户的计算机技能要求较高,一般的用户也不会用,而且不支持断点续传和文件夹的上传、下载等功能因此,设计及实现一个开源的、适合大众需求的FTP客
4、户端和服务器软件是有必要的,是符合社会发展须要的。1.3 探讨方法本设计主要用VC+语言开发FTP客户端软件闻。依据以前所学的相关学问:包括计算机网络技术,TCP/IP详解等;查阅Wind。WS应用程序开发资料,学习VC+语言,FTP通信过程,进而实现FTP软件的功能。2FTP协议分析2.1 FTP内容简介文件传输协议(FileTransferProtocol,FTP)RC959是因特网上运用最为广泛的文件传输协议FTP供应交互式的访问,允许文件具有存取权限(如访问文件必需经过授权和有效指令),并允许用户指明文件的类型和格式(如指明是否运用ASCn码)。FTP屏蔽了各计算机系统的细微环节,因而
5、适合于在异构网络/主机间传输文件。当用户(在Windows操作系统中有同名的应用程序,可以运用Windows中的“运行”对话框或在DOS吩咐行状态下运行)启动FTP及TCP/IP的网络主机进行文件传输。事实上要用到两个程序:本地机上的FTP客户程序,它提出传输文件的恳求:运行在远程主机上的FTP服务器程序,它响应用户恳求并把指定的文件传输到相应的主机上。从根本上说,FTP协议就是在网络中各种不同的计算机之间依据TCP/IP协议来传输文件。FTP协议采纳客户机/服务器(CIient/Sever)模式,由FTP客户端程序和FTP服务器端程序组成。运用时,先启动FTP客户端程序及远程主机建立连接,然
6、后向远程主机发出传输吩咐,远程主机在收到吩咐后就赐予响应,并执行正确的吩咐。FTP是基于TCP的文件传送协议,其传输的牢靠性由TCP来保障。在TCP11协议族中还有一个基于UDP的文件传送协议TFTP,它及FTP同属于文件共享协议,即在传输过程中复制整个文件,其特点是:若要传输一个文件,就必需先获得本地的文件副本。若要修改文件,就只能对文件的副本进行修改,然后再将修改后的文件副本传回到原主机。一般说来,因特网上有两大类FTP文件服务器。一类是所谓的“匿名FTP服务器”,这类服务器的目的是向公众供应文件资源服务,不要求用户事先在该服务器上进行注册。另一类是非匿名FTP服务器,要进入这类服务之前,
7、用户必需先向服务器系统管理员申请用户名和密码,非匿名FTP服务器通常供内部运用或供应询问服务。2.2 FTP工作原理FTP(FileTransferProtocol),是文件传输协议的简称。用于Internet上的限制文件的双向传输。同时,它也是一个应用程序。用户可以通过它把Fl己机器及世界各地全部运行FrP协议的服务器相连,访问服务器上的资源和信息。FTP协议在TCP/IP协议栈中的位置如表2-1:表2-1表P/IP协议栈当用户启动一次及远程主机的FTP会话时,FTP首先建立一个TCP连接到ETP服务器的21号端口.FTP的客户端则通过该连接发送用户标识和密码等,客户端还可以通过该连接发送吩
8、咐以变更远程系统的当前工作书目。当用户要求传送文件时,FTP服务器则在其20号端口上建立一个数据连接,FTP在该连接上传送完毕一个文件后会马上断开该连接。假如再一次FTP会话过程中须要传送另一个文件,FTP服务器则会建立另一个连接。在整个FTP会话过程中,限制连接是始终保持的,而数据连接则会随着文件的传输不断的打开和关闭。2. 3FTP工作模式ETP采纳C/S(客户端/服务器)模式进行通信,但及其他的C/S模式网络通信协议又有一个很大的区分。通常在进行HTTP通信或是TE1.NET通信的时候,只须要一个端口进行通信。即客户端只须要连接一个端口进行数据通信。如TE1.NET的默认端口是23,用户
9、从头到尾都只需运用这个端口。但是FTP通信除了有个默认端口21之夕卜,还须要其他的端口。其中默认端口(21)主要进行限制连接,进行吩咐协议和服务器端的响应码的传输:另外一个非标准端口主要进行数据传递,如文件的上载、下载等山。至于非标准端口的产生则要依据用户选择的连接模式而定:假如客户选择的是主动模式(PORT),则须要用户端供应应服务器一个IP地址和一个非标准端口;而假如用户采纳“主动”状态,它和侦听端口建立数据连接,它还可以为传输和存储设置参数,并依据Pl的指令传输数据。详细工作模式如图2-2所示:md*用)r*rrH八IIMql11CKPDTWRm一件件CF图2-2FTPqGn文件传输在起
10、先阶段,标准FTP吩咐由用户PT产生并通过限制连接传送到服务器进程。服务器Pl向用户Pl返回标准应答。FTP吩咐指定数据连接参数和文件系统操作。用户DTP在特定数据端口侦听,服务器起先数据连接并以指定的参数起先数据传输。数据端口不必在起先FTP吩咐的机器上,但用户或用户FTP进程必需确定它在指定的数据端口上侦听.这个数据连接是全双工的。2. 4简洁文件传送协议TCP/IP协议族中还有简洁文件传输协议,它是一个很小且易于实现的文件传送协议RFC783,RFC1350.虽然TFTP也运用客户机/服务器方式,但它的传输层运用UDP支持,因此TFTP要自己实现纠错功能。TFTP只支持文件传输,而不支持
11、交互,且没有一个浩大的吩咐集。TFTP没有列有目的功能,也不能对用户进行身份验证TFTP的主要优点有两个。第一,TFTP可用于I;DP环境。例如,当须要将程序或文件同时向很多计算机下载时往往就须要运用TFTP。其次,TFTP代码所占用的内存空间较小。这对存储容量较小的计算机或某些特别用途的设备是很重要的。这些设备不须要硬盘,只须要固化了TFTP、UDP、和IP的小容量只读存储器即可。3FTP客户端的设计3. 1设计目的FTP早已应用在网络的各个方面,比如我们在访问网络上的资源时,常常会遇到须要连接FTP服务器来下载,或者你制作了一个网站,想要将其上传至服务器,让大家能够访问它,这个时候就会用到
12、FTP客户端。一般来说,系统需求分析从以下几个方面来介绍:用户需求。软件要简洁上手,能够匿名或者运用帐号登录到用户指定的服务器上,进行访问和数据的上传和下载。功能需求。该系统主要包括以下几个方面:登录和连接服务器模块;阅读服务器/本地书目和文件模块;上传和下载文件模块。由这三个模块构成该系统。性能需求。整个系统操作应当简便,界面友好,运行稳定,执行速度快。系统本身运行对计算机硬件平台和操作系统平台要求适中。因此本文所设计的FTP客户端则适合大多数用户运用,界而设计的很简洁,运用户可以一目了然,而且具备FTP客户端的基本功能,可以作为下载、上传文件的工具来运用。3. 2开发语言程序中所用到的编程
13、语言就是C+C+是在C语言的基础上开发的一种通用编程语言,应用广泛C+支持多种编程范式一一面对对象编程、泛型编程和过程化编程。最新正式标准C+14于2019年8月18口公你。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广阔受用的最强大编程语言之一,支持类:类、封装、重载等山!C+语言的主要特点表现在两个方面,一是尽量兼容C,二是支持面对对象的方法。它操持了C的简洁、高效的接近汇编语言等特点,对C的类型系统进行了改革的扩充,因此C+比C更平安,C+的编译系统能检查出更多的类型借误。另外,由于C语言的广泛运用,因而极大的促进了C+的普及和推广。因此,我选择运用C+语言来实现,
14、闾。3. 3客户端功能模块FTP客户端作为用户连接FTP服务器的工具,须要具备一些基本功能模块,如登录和连接、阅读本地书目和文件、上传和下载等,其中最主要的三大功能模块如下:登录和连接功能模块:将用户本机及指定的Ip地址连接,验证用户名和密码,在FTP服务器上进行连接。上传功能模块:用户可以自行选择本机上存储的文件,上传至FTP服务器。在用户选择所须要上传的文件,单击文件,然后点击上传,即可将文件上传至服务器。在上传过程中,用户也可以暂停、接着和删除文件。下载功能模块:连接用户指定的FTP服务器,获得服务器竹目下的文件列表。当用户选择项目为文件时,单击选定文件,然后选择下载,文件即可下载到指定
15、的文件夹。即用户可已选择任何自己想要下载的文件,通过FTP客户端进行下载。在下载过程中,用户也可以暂停、接着和删除文件。有了这三个基本的功能模块,客户端的基本应用功能即可实现。3. 4客户端界面设计为了运用户能够便利的运用FTP客户端,在设计中将数据输入和信息显示整合在一个页面中,全部客户端仅包含一个主要的窗口,客户端如下图3-1所示。窗口中分别有以下四个部分:数据输入部分:用来让用户输入服务器地址,用户名,密码。服务器连接部分:点击快速登录,即可连接服务器。服务器文件信息显示部分:主要用来显示服务器下存储的文件,便利用户清晰的了解服务器中存储了哪些文件。操作按钮部分:用户可以通过单击左侧文件
16、,点击上传,然后依据提示来实现文件上传;用户可以通过单击右侧文件,点击下载来实现文件下载的详细操作。整个上传下载过程中,用户可以替停、接着和删除文件。图3T客户端界面3.5数据流程图3. 5.1客户端连接流程图运行客户端时,首先是连接服务器,须要输入服务器IP地址及用户名和图3-2客户端连接流程图3. 5.2上传模块流程图当用户想要上传文件时,用户可以选择须要上传的文件,单击文件,点击上传流程邯中可以进行暂停、接着和删除操作。下图3-3为上传模块选择本地当用户在服务器文件列表中选择想要卜载的文件后,单击须耍卜载的文件,然后点击下载,文件将会下载到本机上的指定文件夹下,将服务器上的文件卜.我至本机。卜图3