《网络编程技术课程设计》论文
《网络编程技术课程设计》论文 2012 题 目:专业班级:组 员:指导老师:日 期: — 2013学年第二学期 FTP客户端设计与实现 软件工程Java10-06班 2013-07-04
《网络编程技术课程设计》论文
目录
摘要..........................................................2 关键词........................................................2 1.引言........................................................2 2.FTP协议分析.................................................2 2.1FTP工作原理.............................................2 2.2FTP工作模式.............................................4 2.3FTP传输模式.............................................6
2.3.1ASCII传输方式.....................................6 2.3.2二进制传输方式....................................6 3.FTP客户端的总体设计.........................................6 3.1设计目的及工具的选择....................................6 3.1.1设计目的..........................................6 3.1.2设计工具..........................................7 3.1.3FtpClient类.......................................7 3.2客户端主要模块设计......................................7 3.2.1客户端功能模块....................................8 3.2.2客户端界面设计....................................9 3.3数据流程图..............................................9 3.3.1客户端连接流程图..................................9 3.3.2上传子模块流程图..................................11 3.3.3下载子模块流程图.................................12 4.FTP客户端程序实现...........................................14 4.1客户端显示界面实现.....................................14
4.1.1数据输入界面详细设计.............................14 4.1.2服务器文件信息显示界面详细设计...................14 4.1.3上下载队列显示界面和信息显示界面详细设计.........15 4.1.4操作按钮模块详细设计.............................15 4.2功能模块实现...........................................16 4.2.1连接服务器.......................................16 4.2.2上传文件.........................................16 4.2.3下载文件.........................................17 5.功能运行测试................................................17 6.结语........................................................20 参考文献......................................................21 附录..........................................................22
1
FTP客户端的设计与实现
摘要:FTP是Internet上用来传送文件的协议。它是为了我们能够在Internet上
互相传送文件而制定的文件传送标准,规定了Internet上文件如何传送。通过FTP协议,我们就可以跟Internet上的FTP服务器进行文件的上传或下载。本文以实现一个简单易用的FTP客户端为目标,通过分析FTP协议的基本工作原理和FTP的数据传输原理,研究如何使用Java工具对FTP客户端进行设计,选择Java类库中的FtpClient类来实现FTP客户端程序的上传下载等主要功能,并用eclipse软件提供的一个支持可视化编程的开发环境,从而实现了对FTP客户端的开发。
关键词:FTP协议 ,工作原理,FtpClient,上传下载 引言
目前,FTP服务已经是网络上广泛使用的一种服务了,它是建立在FTP协议
上的用于网络环境下进行文件传输的一种文件传输系统,几乎可以传输各种类型的文件,如文本文件,声音文件,图像文件等。一个文件传输系统有服务器端程序和客户端程序共同组成的,客户端程序提供用户操作的界面并完成文件的上传和下载。在网络应用中,FTP有着非常重要的地位,在Internet中一个十分重要的就是资源,而各种各样的资源大多数都是放在FTP服务器中的,为了获得这些资源,我们必须使用FTP客户端软件。目前流行的有cuteFTP,WS_FTP,ByteCatcher,FTP Voyage等。为了方便用户的使用,本文将介绍一种基于Java的FTP客户端程序的设计与实现。
本文首先分析了FTP协议,FTP的工作原理等,然后介绍了如何使用Java工具来设计和实现一个简单的FTP客户端。使用本FTP客户端,可以使用户轻松的下载、上传网络资源。
2.FTP协议分析
2.1FTP的工作原理
FTP(FileTransferProtocol),是文件传输协议的简称。用于Internet上
2
的控制文件的双向传输。同时,它也是一个应用程序。用户可以通过它把自己机器与世界各地所有运行FTP协议的服务器相连,访问服务器上的资源和信息。 FTP协议在TCP/IP协议栈中的位置如表1: 表1 TCP/IP协议栈 HTTP FTP TELN SMTP DNS TFTP NMP TCP UDP IP X25 ISDN LAN WLAN FDDI ATM
当启动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主机中存储着
应用层 传输层 互联网络层 网络接口层
3
无以计数的文件,这些文件包含了各种各样的信息、数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登陆。 2.2 FTP工作模式
FTP采用C/S(客户端/服务器)模式进行通信,但与其他的C/S模式网络通信协议又有一个很大的区别。通常在进行HTTP通信或是TELNET通信的时候,只需要一个端口进行通信。即客户端只需要连接一个端口进行数据通信。如TELNET的默认端口是23,用户从头到尾都只需使用这个端口。但是FTP通信除了有一个默认端口21之外,还需要其他的端口。其中默认端口(21)主要进行控制连接,进行命令协议和服务器端的响应码的传输;另外一个非标准端口主要进行数据传递,如文件的上载、下载等。至于非标准端口的产生则要根据用户选择的连接模式而定:如果客户选择的是主动模式(PORT),则需要用户端提供给服务器一个IP地址和一个非标准端口;而如果用户采用被动模式(PASV),则服务器端需要提供给客户端一个IP地址和一个非标准端口。
下表是几个著名的TCP端口号:
表2 TCP端口号
TCP端口号 20 21 23 25 53 80 110 119
关键字 FTP-DATA FTP TELENET SMTP DOMAIN HTTP POP3 NNTP 描述 文件传输协议数据 文件传输协议控制 远程登录协议 简单邮件传输协议 域名服务器 超文本传输协议 邮局协议 新闻传送协议 FTP中字节大小有两个:逻辑字节大小和用于传输的字节大小。后者通常是
8位 ,而前者可不一定是多少了。传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。控制连接是建立在USER-PIT和SERVER-PI之间用于交换命
4