当前位置:文档之家› ftp客户端的设计与实现

ftp客户端的设计与实现

《计算机网络》课程设计说明书题目: ftp客户端的设计与实现学院:计算机科学与工程学院专业:信息安全2015年03 月24日摘要与大多数Internet服务一样,FTP也是一个客户机/服务器系统。

用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。

用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。

比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。

客户机程序代表用户接收到这个文件,将其存放在用户目录中。

在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和“上载”(Upload)。

“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上载”文件就是将文件从自己的计算机中拷贝至远程主机上。

用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。

使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。

也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。

换言之,除非有用户ID和口令,否则便无法传送文件。

这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。

匿名FTP就是为解决这个问题而产生的。

匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。

系统管理员建立了一个特殊的用户ID,名为anonymous,Internet上的任何人在任何地方都可使用该用户ID。

关键字:FTP;java;远程连接;上传;下载引言 (4)1、系统概述 (4)1.1、系统说明.................................................... 错误!未定义书签。

1.2、系统功能说明................................................ 错误!未定义书签。

2、需求分析 (4)2.1、系统需求 (8)2.2、开发环境 (8)3、详细设计................................................ 错误!未定义书签。

3.1、系统设计.................................................... 错误!未定义书签。

3.2、各模块详细设计.............................................. 错误!未定义书签。

3.2.1、图形界面模块 ................................ 错误!未定义书签。

3.2.2、连接登录模块 ................................ 错误!未定义书签。

3.2.3、浏览模块 .................................... 错误!未定义书签。

3.2.4、上传和下载模块 .............................. 错误!未定义书签。

3.2.5、程序总体功能测试 ............................ 错误!未定义书签。

4、所遇到的问题和分析解决.................................. 错误!未定义书签。

5、结论.................................................... 错误!未定义书签。

参考文献................................................... 错误!未定义书签。

引言随着科学技术的不断提高,计算机网络日渐成熟,其强大的功能已为人们深刻认识,它已进人类社会的各个领域并发挥着越来越重要的作用。

其中的文件传输协议(File Transfer Protocol, FTP)是目前Internet上使用得最广泛的文件传送协议。

在互联网早期曾占据整个互联网通信量的三分之一。

它主要解决了在不同操作系统下处理文件格式的不兼容性。

起初,FTP并不是应用于IP网络上的协议,而是20世纪60~80年代美国国防部组建的ARPANET网络中,用于计算机间的文件传输的协议。

时至今日,FTP仍然保持其可靠性,高速地传输文件,它还允许文件远程存取。

这使得用户可以在某个系统上工作,而将文件存贮在别的系统。

传统方式需要在DOS下输入命令,对于普通用户是件极困难的事。

为了用户更方便的使用FTP服务,提供更好的人机交互界面,本次课程设计将完成一个简单FTP客户端系统的设计和开发工作,实现服务器连接、远程与本地目录浏览、文件上传和下载等基本FTP工具常用功能。

并通过这次课程设计,对网络编程方面有更深入的了解,提高实践能力。

1 绪论1.1 研究背景FTP是Internet上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。

用FTP将信息下载到本地是一件十分普遍的事。

也随之出现了许多下载软件。

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

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

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

全世界现在已有1000多个(96年的数据)FTP文件服务器对所有INTERNET用户开使用,用户可以通过与Internet相连到远程计算机,把自己需要的文件传输过来或是把自己的收集传输上去与他人共享。

传统的数据库应用系统采用的是客户机/服务器(Client/Server)模式,有高度的交互性,高效的用户界面等优点1.2 主要工作通过客户端可以实现文件的上传和下载。

其促进文件的共享(计算机程序或数据)、鼓励间接或者隐式的使用远程计算机、向用户屏蔽不同主机中各种文件存储系统的细节和可靠和高效的传输数据。

1.3 本文结构本文第1部分绪论主要说明了研究背景、主要工作和本文结构。

第2部分说明了有关ftp的相关知识。

第三部分系统设计,绘制了系统的模块图、流程图和模块的实现。

第四部分系统的测试与数据分析,说明了测试遇到的问题、解决方法及系统进一步的优化。

第五部分是本课程设计的总结和体会。

2 相关知识介绍2.1 FTP 工作原理FTP(File Transfer Protocol),是文件传输协议的简称。

用于Internet 上的控制文件的双向传输。

同时,它也是一个应用程序。

用户可以通过它把自己机器与世界各地所有运FTP协议的服务器相连,访问服务器上的资源和信息。

FTP协议在TCP/IP协议栈中的位置如表1:当启动FTP从远程计算机拷贝文件时,事实上启动了两个程序:一个本地机器上的FTP客户端程序,它向FTP服务器提出拷贝文件的请求。

另一个是启动在远程计算机的上的FTP服务器程序,它响应请求把你指定的文件传送到你的计算机中。

FTP采用“客户端/服务器”方式,用户要在自己的本地计算机上安装FTP客户端程序。

从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP 协议来传输文件。

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

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

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

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

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

现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问者进行跟综。

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

也就是说,用户只能从匿名FTP主机拷贝其需要的文件而不能把文件拷贝到匿名FTP主机。

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

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

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

2.2 FTP工作模式FTP 采用C/S(客户端/服务器)模式进行通信,但与其他的C/S 模式网络通信协议又有一个很大的区别。

通常在进行HTTP 通信或是TELNET 通信的时候,只需要一个端口进行通信。

即客户端只需要连接一个端口进行数据通信。

如TELNET 的默认端口是23,用户从头到尾都只需使用这个端口。

但是FTP 通信除了有一个默认端口21 之外,还需要其他的端口。

其中默认端口(21)主要进行控制连接,进行命令协议和服务器端的响应码的传输;另外一个非标准端口主要进行数据传递,如文件的上载、下载等。

至于非标准端口的产生则要根据用户选择的连接模式而定:如果客户选择的是主动模式(PORT),则需要用户端提供给服务器一个IP 地址和一个非标准端口;而如果用户采用被动模式(PASV),则服务器端需要提供给客户端一个IP 地址和一个非标准端口。

下表是几个著名的TCP 端口号:表2 TCP 端口号FTP 中字节大小有两个:逻辑字节大小和用于传输的字节大小。

后者通常是8 位,而前者可不一定是多少了。

传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。

控制连接是建立在USER-PIT 和SERVER-PI 之间用于交换命令与应答的通信链路。

数据连接是传输数据的全双工连接,传输数据可以发生在服务器DTP 和用户DTP之间也可以发生在两个服务器DTP 之间,FTP 可以传输非连续的文件,这些文件的一部分称为页。

服务器DTP 代表一种传输过程,它通常处于“主动”状态,它和侦听端口建立数据连接,它还可以为传输和存储设置参数,并根据PI 的指令传输数据。

当然,DTP 也可以转入“被动”状态。

服务器FTP 进程,它是和用户FTP 进程一起工作的,它由PI 和DTP 组成。

在开始阶段,标准FTP 命令由用户PI 产生并通过控制连接传送到服务器进程。

相关主题