FTP客户端设计和实现.doc
《FTP客户端设计和实现.doc》由会员分享,可在线阅读,更多相关《FTP客户端设计和实现.doc(36页珍藏版)》请在咨信网上搜索。
1、 目录摘要.2关键词.21.引言.22.FTP协议分析.2 2.1FTP工作原理.2 2.2FTP工作模式.4 2.3FTP传输模式.6 2.3.1ASCII传输方法.6 2.3.2二进制传输方法.63.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下载子模块步骤图.124.FTP用户端程序实现.14 4.1用户端显
2、示界面实现.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下载文件.175. 功效运行测试.176.结语.20参考文件.21附录.22FTP用户端设计和实现摘要:FTP是Internet上用来传送文件协议。它是为了我们能够在Internet上相互传送文件而制订文件传送标准,要求了Internet上文件怎样传送。经过FTP协议,我们就能够跟Internet上FTP服务
3、器进行文件上传或下载。本文以实现一个简单易用FTP用户端为目标,经过分析FTP协议基础工作原理和FTP数据传输原理,研究怎样使用Java工具对FTP用户端进行设计,选择Java类库中FtpClient类来实现FTP用户端程序上传下载等关键功效,并用eclipse软件提供一个支持可视化编程开发环境,从而实现了对FTP用户端开发。关键词:FTP协议 ,工作原理,FtpClient,上传下载引言 现在,FTP服务已经是网络上广泛使用一个服务了,它是建立在FTP协议上用于网络环境下进行文件传输一个文件传输系统,几乎能够传输多种类型文件,如文本文件,声音文件,图像文件等。一个文件传输系统有服务器端程序和
4、用户端程序共同组成,用户端程序提供用户操作界面并完成文件上传和下载。在网络应用中,FTP有着很关键地位,在Internet中一个十分关键就是资源,而多种多样资源大多数全部是放在FTP服务器中,为了取得这些资源,我们必需使用FTP用户端软件。现在流行有cuteFTP,WS_FTP,ByteCatcher,FTP Voyage等。为了方便用户使用,本文将介绍一个基于JavaFTP用户端程序设计和实现。 本文首先分析了FTP协议,FTP工作原理等,然后介绍了怎样使用Java工具来设计和实现一个简单FTP用户端。使用本FTP用户端,能够使用户轻松下载、上传网络资源。2. FTP协议分析 2.1FTP工
5、作原理 FTP(FileTransferProtocol),是文件传输协议简称。用于Internet上控制文件双向传输。同时,它也是一个应用程序。用户能够经过它把自己机器和世界各地全部运行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服务器提出拷贝文
6、件请求。另一个是开启在远程计算机上FTP服务器程序,它响应请求把你指定文件传送到你计算机中。FTP采 用“用户端/服务器”方法,用户要在自己当地计算机上安装FTP用户端程序。 从根本上说,FTP协议就是在网络中多种不一样计算机之间根据TCP/IP协议来传输文件。FTP协议采取用户端/服务器(Client/Sever)模式,由FTP用户端程序和FTP服务器端程序组成。使用时,先开启FTP用户端程序和远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给响应,并实施正确命令。不过FTP有一个根本限制,那就是,假如用户在某个主机上没有注册取得授权,即没有用户名和口令,就不能和该主机进
7、行文件传输。但匿名FTP服务器除外,它能够使用户和远程主机建立连接并以匿名身份从远程主机上拷贝文件,而无须是该远程主机注册用户。用户使用特殊用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开文件。现在很多系统要求用户将Emai1地址作为口令,方便愈加好地对访问者进行跟综。出于安全目标,大部分匿名FTP主机通常只许可远程用户下载文件,而不许可上载文件。也就是说,用户只能从匿名FTP主机拷贝其需要文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采取了其它部分保护方法以保护自己文件不至于被用户修改和删除,并预防计算机病毒侵入。匿名FTP一直是Internet上获取
8、信息资源最关键方法,在Internet成千上万匿名FTP主机中存放着无以计数文件,这些文件包含了多种多样信息、数据和软件。大家只要知道特定信息资源主机地址,就能够用匿名FTP登陆。2.2 FTP工作模式FTP采取C/S(用户端/服务器)模式进行通信,但和其它C/S模式网络通信协议又有一个很大区分。通常在进行HTTP通信或是TELNET通信时候,只需要一个端口进行通信。即用户端只需要连接一个端口进行数据通信。如TELNET默认端口是23,用户从头到尾全部只需使用这个端口。不过FTP通信除了有一个默认端口21之外,还需要其它端口。其中默认端口(21)关键进行控制连接,进行命令协议和服务器端响应码传
9、输;另外一个非标准端口关键进行数据传输,如文件上载、下载等。至于非标准端口产生则要依据用户选择连接模式而定:假如用户选择是主动模式(PORT),则需要用户端提供给服务器一个IP地址和一个非标准端口;而假如用户采取被动模式(PASV),则服务器端需要提供给用户端一个IP地址和一个非标准端口。下表是多个著名TCP端口号: 表2 TCP端口号TCP端口号 关键字 描述 20 FTP-DATA 文件传输协议数据 21 FTP 文件传输协议控制 23 TELENET 远程登录协议 25 SMTP 简单邮件传输协议 53 DOMAIN 域名服务器 80 HTTP 超文本传输协议 110 POP3 邮局协议
10、 119 NNTP 新闻传送协议 FTP中字节大小有两个:逻辑字节大小和用于传输字节大小。后者通常是8位 ,而前者可不一定是多少了。传输字节无须等于逻辑字节大小,也无须对数据结构进行解释。控制连接是建立在USER-PIT和SERVER-PI之间用于交换命令和应答通信链路。数据连接是传输数据全双工连接,传输数据能够发生在服务器DTP和用户DTP之间也能够发生在两个服务器DTP之间,FTP能够传输非连续文件,这些文件一部分称为页。服务器DTP代表一个传输过程,它通常处于“主动”状态,它和侦听端口建立数据连接,它还能够为传输和存放设置参数,并依据PI指令传输数据。当然,DTP也能够转入“被动”状态。
11、服务器FTP进程,它是和用户FTP进程一起工作,它由PI和DTP组成。至于用户FTP进程则是由PI,DTP和用户接口组成。具体工作模式图1所表示:FTP请求用户用户接口服务器aFTP响应用户a1文件传输系统文件传输系统用户b2数据连接服务器 b 服务器-FTP用户FTP 图1FTP工作模式图 上图中用户PI开始控制连接,控制连接和Telnet协议很象。在开始阶段,标准FTP命令由用户PI产生并经过控制连接传送到服务器进程。服务器PI向用户PI返回标准应答。FTP命令指定数据连接参数和文件系统操作。用户DTP在特定数据端口侦听,服务器开始数据连接并以指定参数开始数据传输。数据端口无须在开始FTP
12、命令机器上,但用户或用户FTP进程必需确定它在指定数据端口上侦听.这个数据连接是全双工。 2.3FTP传输模式 FTP协议任务是从一台计算机将文件传送到另一台计算机,它和这两台计算机所处位置、联接方法、甚至是是否使用相同操作系统无关。假设两台计算机经过ftp协议对话,而且能访问Internet,你能够用ftp命令来传输文件。每种操作系统使用上有某部分细微差异,不过每种协议基础命令结构是相同。FTP传输有两种方法:ASCII传输模式和二进制数据传输模式。2.3.1 ASCII传输方法 假定用户正在拷贝文件包含简单ASCII码文本,假如在远程机器上运行不是UNIX,当文件传输时ftp通常会自动地调
13、整文件内容方便于把文件解释成另外那台计算机存放文本文件格式。不过常常有这么情况,用户正在传输文件包含不是文本文件,它们可能是程序,数据库,字处理文件或压缩文件(尽管字处理文件包含大部分是文本,其中也包含有指示页尺寸,字库等信息非打印字符)。在拷贝任何非文本文件之前,用binary命令告诉ftp逐字拷贝,不要对这些文件进行处理。2.3.2二进制传输方法 在二进制传输中,保留文件位序,方便原始和拷贝是逐位一一对应。即使目标地机器上包含位序列文件是没意义。比如,macintosh以二进制方法传送可实施文件到Windows系统,在对方系统上,此文件不能实施。假如你在ASCII方法下传输二进制文件,即使
14、不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。假如你知道这两台机器是一样,则二进制方法对文本文件和数据文件全部是有效。3 FTP用户端总体设计3.1设计目标及工具选3.1.1 设计目标 FTP早已应用在网络各个方面,比如我们在访问网络上资源时,常常会碰到需要连接FTP服务器来下载,或你制作了一个网站,想要将其上传至服务器,让大家能够访问它,这个时候就会用到FTP用户端。即使平时使用windows自带IE浏览器即可实现对FTP服务器访问,不过IE只是个很粗糙FTP用户端。IE浏览器在6.0以下版本不支持PASV方法访问服务器,而且IE浏览器在登录FTP服务器时候,无法查看
15、返回信息,在犯错时候,无法找到错误原因,所以在使用上很不方便。现在大多数FTP用户端软件全部是收费版,而且以英文版居多,使用上操作很复杂,现在流行有CoreFtp、AceFtp、FtpVoyager等,不过大多数用户并不习惯使用这些软件。本文所设计FTP用户端则适合大多数用户使用,界面设计很简单,使用户能够一目了然,而且含有FTP用户端基础功效,能够作为下载、上传文件工具来使用。3.1.2 设计工具 程序设计中用到关键工具就是Java,Java是SUN企业开发一个面向对象新一代网络编程语言,它能够在多种不一样机器、操作系统网络环境中进行开发,含有解释型语言(如Basic语言)和编译型语言(如C
16、语言)特征。Java摒弃了C+中多种弊大于利功效和很多极少用到功效,用Java开发程序能够在网络上传输,并运行于任何用户机上。使用Java语言能够方便设计出网络应用类程序,而且Java移植性很好,在 、其应用程序在多种机器上全部能无差异实施为了使FTP用户端能适应大多数平台下使用,我选择使用Java语言来实现。3.1.3 ftpclient类 Java类库存在使它适合于一个不停发展环境。在类库中我们能够自由地加入新方法和实例变量而不会影响用户程序实施。而且Java经过接口来支持多重继承,使其比严格类继承含有更灵活方法和扩展性。在处理复杂事物时候,用到一个基础手段就是抽象。抽象目标就是区分事物之
17、间本质和不一样,面向对象编程(OOP)实质就是利用类和对象来建立抽象模型。类表示了对象类别,是创建对象蓝本。建立一个事物抽象模型,本质上就是表示该事物性质和行为。使用类来建立抽象模型,是经过在类中定义变量和方法来实现。类中定义属性是一个可存放值变量,该变量代表着事物具体性质。 在J2SE中提供了和用户端编程相关Api,它就是.ftp.FtpClient类,FtpClient类封装了FTP协议相关指令和实现细节,提供了一系列方法,这些方法涵盖了几乎全部ftp功效使用FtpClient类设计FTP用户端程序能够让编程人员轻松地实现登录远程FTP服务器、浏览服务器上目录、设置传输协议、上传文件和下载
18、文件等功效。 本文所使用FtpClient类结构方法和关键方法以下:1.PublicFtpClient(Stringhostname)此结构函数利用给出主机名建立一条FTP连接,使用默认端口号。2.PublicvoidopenServer(Stringhostname)这个方法用于建立一条和指定主机上FTP服务器连接,使用默认端口号。3.Publicvoidlogin(Stringusername,Stringpassword)此方法利用参数username和password登录到FTP服务器。使用过Internet用户应该知道,匿名FTP服务器登录用户名为anonymous,密码通常见自己电
19、子邮件地址。Publicvoidbinary():该命令可把传输格式设置为二进制格式。3.2.1用户端功效模块 FTP用户端作为用户连接FTP服务器工具,需要含有部分基础功效模块,如连接、上传、下载等,其中最关键三大功效模块以下:1、下载功效模块:连接用户指定FTP服务器,获取服务器目录下文件列表,当用户选择项目为文件时,点击下载能够下载用户所需要文件。选定文件后提醒用户将文件存放在何处,用户选择存放区后开始下载任务。依靠FTP协议支持,用户下载文件没有类型和大小限制,即用户可已选择任何自己想要下载文件,经过FTP用户端进行下载。2、上传功效模块:用户能够自行选择本机上存放文件,上传至FTP服
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FTP 客户端 设计 实现
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。