版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XX大学毕业设计题目:FTP客户端软件的设计与实现指导教师:XXX职称:副教授学生姓名:XXX学号:201XXXXXXXXX专业:计算机科学与技术院(系):信息工程学院完成时间:2014年5月9日2014年5月9日FTP客户端设计与实现摘要信息时代的到来,信息的交流变得越来越重要,而信息的交流离 不开文件的传输。基于FTP的文件传输系统意在搭建一个文件传输平 台,使其在安全、透明、快捷的环境下来进行文件传输。网络上进行信息共享或文件传输,都是基于某种协议而进行的, FTP是人们在网络中进行文件传输普遍采用的一种协议。系统使用流 行的Java作为开发语言,采用C/S模式作为网络结构,利用套接字
2、编程实现多线程传输。论文首先对现在常用的FTP进行了分析,然后介绍了系统的需求 分析和设计过程,给出了服务器和客户端的功能模块及总体流程,最 后给出了网络文件传输系统服务器和客户端的编码实现,并对系统各 个功能的实现进行了测试,分析优缺点和总结。通过测试,该系统实用、界面简单,能进行文件上传和下载并支 持多线程,是一个比较好的文件传输系统。关键词:文件传输协议,TCP/IP,多线程,套接字Design and implementation of an FTP client AbstractThe arrival of the information age, the exchange of i
3、nformation is becoming increasingly important, and the exchange of information can not be separated file transfer . FTP-based file transfer system is intended to set up a file transfer platform , so in a safe , transparent and efficient environment down the file transfer.Information sharing on a net
4、work or file transfer, are carried out based on a protocol , FTP is a protocol for file transfer people to be widely used in the network. The system uses the popular Java as a development language , using C / S mode as the network structure , the use of socket programming multithreaded transfers.Fir
5、stly, on the now commonly used FTP analyzed, and then introduced the system requirements analysis and design process , gives the server and client modules and the overall process . Finally, network file transfer server and client code implementation, and realization of various functions system has b
6、een tested , analyzed and summarized the advantages and disadvantages .Through testing, the system is practical , simple interface , files can be uploaded and downloaded and supports multi-threading , is a good file transfer system .Keywords : file transfer protocol , TCP / IP, multi-threaded, socke
7、t TOC o 1-5 h z HYPERLINK l bookmark18 o Current Document 第1章绪论6 HYPERLINK l bookmark21 o Current Document 1.1课题背景6 HYPERLINK l bookmark24 o Current Document 1.2课题现状7 HYPERLINK l bookmark31 o Current Document 1.3本文组织方式8 HYPERLINK l bookmark34 o Current Document 第2章开发工具及关键技术8 HYPERLINK l bookmark37 o
8、 Current Document 2.1开发工具82.2关键技术10 HYPERLINK l bookmark54 o Current Document C/S架构简介10 HYPERLINK l bookmark63 o Current Document SOCKET 网络编程11 HYPERLINK l bookmark67 o Current Document FTP协议简介11 HYPERLINK l bookmark71 o Current Document 第3章客户端文件传输系统设计13 HYPERLINK l bookmark74 o Current Document 3.1
9、客户端需求分析13 HYPERLINK l bookmark77 o Current Document 3.1.1用户需求13 HYPERLINK l bookmark80 o Current Document 3.1.2功能需求13 HYPERLINK l bookmark84 o Current Document 3.1.3性能需求133.2客户端设计14 HYPERLINK l bookmark87 o Current Document 3.2.1客户端整体模块14 HYPERLINK l bookmark93 o Current Document 3.2.2客户端流程划分15ftpcl
10、ient 类 16 HYPERLINK l bookmark100 o Current Document 3.4实现思路17 HYPERLINK l bookmark108 o Current Document 第4章文件传输系统的实现18 HYPERLINK l bookmark111 o Current Document 4.1界面模块实现18 HYPERLINK l bookmark114 o Current Document 4.2登录界面实现18 HYPERLINK l bookmark117 o Current Document 4.3浏览程序24 HYPERLINK l book
11、mark120 o Current Document 4.3. 1浏览服务器端目录程序24 HYPERLINK l bookmark123 o Current Document 4.4文件的上传与下载274.4.1文件下载程序27 HYPERLINK l bookmark126 o Current Document 4.4.2文件上传程序27第5章 系统测试及问题处理35 HYPERLINK l bookmark129 o Current Document 5.1测试环境35 HYPERLINK l bookmark132 o Current Document 5.2测试结果36 HYPERL
12、INK l bookmark135 o Current Document 5.2.1登录模块测试36 HYPERLINK l bookmark138 o Current Document 5.2.2系统兼容性测试36 HYPERLINK l bookmark141 o Current Document 5.3测试总结36结 论38 HYPERLINK l bookmark144 o Current Document 参考文献39致谢40 HYPERLINK l bookmark151 o Current Document 声 明41第1章绪论1.1课题背景随着Internet在全世界的普及和发
13、展,越来越多的用户将自己的计算机连 入这个人类有史以来最庞大的网络中。其中FTP(File Transfer Protocol)是 Internet中最早提供的服务之一,目前仍在被人们广泛使用着。如果说Internet 是如今的信息高速公路的话,FTP文件传输系统就是其上面的洲际车,它使用 TCP/IP体系结构中应用层上的FTP协议在不同的计算机系统之间互相传输文件。 人们通常将文件传输服务称为FTP服务。通过FTP服务,Internet 上的用户可 以从授权的异地计算机上获取所需的文件,也可以把本地文件传输到其他计算机 上,这就为计算机之间双向传输文件提供了一种有效的手段。FTP凭借其透明、
14、 快捷等特点,越来越多的人通过FTP能够在互联网上获得大量免费文件,FTP协 议已经是Internet上应用最多的协议之一。虽然FTP应用非常广泛,但在国内仍然缺乏高性能的产品。由于商业原因, 对国外FTP文件传输系统中的关键技术也知之甚少;同时国内对FTP系统的研究 也是相对较少的,这从学术刊物上发表的相关文章就可以看出。所以基于FTP 的文件传输系统的研究是有一定意义的。在FTP的众多功能中,安全性是一个突 出且敏感的功能。绝大多数企业、部门在使用FTP的时候,都会考虑这个问题, 把它作为选购FTP文件传输系统产品的重要依据。目前市场上流行的FTP系统, 像CuteFtp、FtpComma
15、nder、FlashFtp等,都是国外的产品,虽然功能和性能等 方面都还不错,但毕竟是通用的软件,任何人都可以得到并对其进行研究,从而 可能给这些软件的安全性带来潜在的问题。从保证安全性的角度出发,很有必要 根据自身的需要开发一个自己的文件传输系统,这样就可以避免采用通用软件带 来的危险。另一方面,在实际使用国外产品的过程中,发现它们并不能很好的满 足用户的要求。比如说,访问日志功能,虽然绝大多数的国外产品都有,但是, 这些日志功能都是固定的,不能够根据用户的要求来灵活的生成,而这个功能又 是用户所必须的。因此研究并实现FTP文件传输系统不仅有助于深入了解各种 Innternet协议的实现细节
16、,掌握FTP的技术,而且可实现软件的国产化,满足 国内用户的安全性需求,对于社会和个人都有积极的意义。本毕业设计将介绍FTP客户端系统的设计和开发工作,因此,文章将涵盖以 下四个方面的内容:1.基础技术知识介绍;2.文件传输系统的详细需求;3.介绍 系统体的具实现;4.对最终系统进行测试。通过这次课题,对整个开发过程有深 入的了解,提高实践能力。FTP将在未来的很长时间里作为主要的文件传输协议, 使用前景仍然宽广,功能会更加强大。1.2课题现状互联网上传统的技术模式是C/S模式,FTP(File Transfer Protocol)文件 传输服务就是这种模式的典型代表。FTP是TCP/IP协议
17、组中的协议之一,该协 议是Internet文件传送的基础,它促进了文件的共享、鼓励间接或者隐式地使用 远程计算机、向用户屏蔽不同主机中各种文件存储系统的细节以及提供可靠和高 效的数据传输。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数 据端口为20。FTP中主要采用了 TCP传输控制协议(Transmission Control Protocol)和 Telnet 协议。在网络普及的今天,政府机关、企业、学校等各行各业已经广泛地应用并建 立了自己的FTP文件传输系统,FTP极大地提高了我们的工作效率和管理水平。 由于计算机网络的互联、互通的特性,为我们工作带来方便和效率
18、。普通的FTP 服务要求用户必须在要访问的计算机上有用户名和口令。而Internet上最受欢迎 的是称为匿名FTP的服务,用户在登录这些服务器时不用事先注册一个用户名 和口令,而是以“anonymous或“FTP用户名,自己的电子邮件地址为口令即 可。匿名FTP是目前Internet上进行资源共享的主要途径之一。它的特点是访 问方便,操作简单,容易管理.Internet上有许多的资源都是以FTP的形势提供 给大家使用的,包括各种文档、软件工具包等等。FTP虽然是一种已经成熟且应用广泛的的技术,但是其仍然存在需要改进的地方。 主要有下面几个方面:服务器和客户端的功能被明确划分,如何在服务器端负载
19、压力很大的情况下 提高客户端的带宽资源的利用率。FTP使用明文传输,如何使用多种加密手段保全系统及客户信息的安全。FTP时延太高,如何保证文件传输速度的稳定。FTP的开放性,如何保证共享资源的内容健康。1.3本文组织方式本文从课题的的现状和背景入手,分析了 FTP文件传输系统的现状和国内 外的研究背景。后续章节的主要内容安排如下:第二章开发工具及关键技术,主 要讲述了本次设计用到的编程语言java和开发平台Jbuilder 2006,并对它们的 特点进行了说明;接着阐述了本次设计用到的关键技术C/S模式与socket网络 编程,最后对FTP协议进行了介绍。第三章文件传输系统设计主要讲述了 FT
20、P 文件传输系统的设计,对系统进行需求分析,各个模块的流程划分、设计和架构, 并对用到的关键技术进行了说明。第四章文件传输系统的实现,对客户端和服务 器各个功能模块的编码实现进行说明并列出部分代码。第五章系统测试,对客户 端和服务器进行了测试,测试结果表明系统实现了设计的功能并达到预期的性能。第2章开发工具及关键技术2.1开发工具2.1.1开发语言Java是Sun公司推出的一种编程语言。Java语言的设计集中于对象及其接 口,它提供了简单的类机制以及动态的接口模型,高度抽象,采用纯面向对象编 程的思想和方法。Java还带有很多的扩展的类包(Package),在程序中可以轻 松调用,简化程序员的
21、工作。Java程序运行的硬件或软件环境,称为平台。Java 平台包括2个部分:Java虚拟机和Java应用程序接口。Java API: Java应用程 序接口,用于Java程序的使用和Java虚拟机的接口。Java虚拟机用于将Java 字节码翻译成特定机器码。基于硬件的平台,即Java程序运行的特定的硬件环 境。Java是一种简单的、面象对象的、分布式的、解释的、键壮的、安全的、结构 的、中立的、可移植的、性能很优异的、多线程的、动态的语言。Java特点有 如下:1、平台无关性平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚 拟机,实现不同平台的Java接口之间。使
22、用Java编写的程序能在世界范围内共 享。Java的数据类型与机器无关,Java虚拟机(Java Virtual Machine)是建立 在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平 台的接口的。2、安全性Java的编程类似C+,学习过C+的读者将很快掌握Java的髓。Java舍弃了 C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样 可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的 非法访问。3、面向对象Java吸取了 C+面向对象的概念,将数据封装于类中,利用类的优点实现了程 序的简洁性和便于维护性。类的封装性、继承性
23、等有关对象的特性,使程序代码 只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接 口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使父类的 方法。在Java中,类的继承关系是单一的而非多重的,一个子类只有一个父类, 子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵 倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派 生的子类。4、分布式Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和 接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。5、键壮性Ja
24、va致力于检查程序在编译和运行时的错误,类型检查帮助检查出许多开发早 期出现的错误。Java可以自己操纵内存减少了内存出错的可能性。Java还实现 了真数组,避免了覆盖数据的可能。这些功能特征大大提高了开发Java应用程 序的周期。2.1.2开发平台NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员 利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE 已经支持 PHP、Ruby、JavaScript、Groovy、Grails 和 C/C+等开发语言。NetBeans项目由一个活跃的开发社区提供支持,NetBean开发环
25、境提供了 丰富的产品文档和培训资源以及大量的第三方插件。NetBeans是开源软件开发集成环境,是一个开放框架,可扩展的开发平台, 可以用于Java、C/C+,PHP等语言的开发,本身是一个开发平台,可以通过 扩展插件来扩展功能。在NetBeans Platform平台中,应用软体是用一系列的软体模组(Modular Software Components)建构出来。而这些模组是一个 jar 档(Java Archive File) 它包含了一组Java程式的类别而它们实作全依据依NetBeans定义了的公开介 面以及一系列用来区分不同模组的定义描述档(Manifest File)。有赖於模组
26、化带 来的好处,用模组来建构的应用程式可只要加上新的模组就能进一步扩充。由於 模组可以独立地进行开发,所以由NetBeans平台开发出来的应用程式就能利 用着第三方软件,非常容易及有效率地进行扩充。如果用户既要求易于进行可视 化布局,又要求有较大的灵活性,NetBeans就是最好的选择。2.2关键技术C/S架构简介客户机/服务器在分布处理过程中,使用基于连接的网络通信模式。该通信 模式首先在客户机和服务器之间定义一套通信协议,并创建一 Socket类,利用 这个类建立一条可靠的链接;然后,客户机/服务器再在这条链接上可靠地传输 数据。客户机发出请求,服务器监听来自客户机的请求,并为客户机提供响
27、应服 务。这就是典型的“请求一应答”模式。下面是客户机/服务器的一个典型运作 过程:服务器监听相应端口的输入;客户机发出一个请求;(3 )服务器接收到此请求;服务器处理这个请求,并把结果返回给客户机;上述过程,直至完成一次会话过程。图1 2层C/S结构图SOCKET网络编程所谓socket通常也称作套接字,应用程序通常通过套接字向网络发出 请求或者应答网络请求socket的英文原义是“孔”或“插座”。作为BSD UNIX 的进程通信,取后一种意思。用于描述IP地址和端口,是一个通信链的句柄。 在Internet上的主机运行了多个服务软件,同时提供几种服务。每种服务都打 开一个Socket,并绑
28、定到一个端口上,不同的端口对应于不同的服务。Socket 正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每 个插座有一个编号,有的插座提供220伏交流电,有的提供110伏交流电,有 的则提供有线电视节目。客户软件将插头插到不同编号的插座,就可以得到不 同的服务。使用socket套接字,利用TCP/IP或者UDP协议,实现几个机器之间的通信。 一般使用C/S结构。以TCP/IP为例:首先建立一个服务器,步骤如下:socket ()创建一个socket, bind()绑定socket得到一个端口,listen()监听端 口,accept()等待客户端的连接。客户端程序:soc
29、ket()创建一个socket, 可以绑定也可以不绑定,然后connect()连接到服务器端。Socket又分为阻塞 式的和非阻塞式的。阻塞式的就是服务器端等待连接直到连接上,不然一直挂起。FTP协议简介FTP是TCP/IP协议组中的协议之一,是英文File Transfer Protocol的 缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目 标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和 可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程 计算机拷贝文件至自己的计算机上,称之为下载(download)”文件。若将文
30、件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在 TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP协 议来传输文件FTP协议采用客户机/服务器(Client/Sever)模式,由FTP客户 端程序和FTP服务器端程序组成。使用时,先启动FTP客户端程序与远程主机建 立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并 执行正确的命令。但是FTP有一个根本的限制,那就是,如果用户在某个主机上 没有注册获得授权,即没有用户名和口令,就不能与该主机进行
31、文件传输。但匿 名FTP服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机 上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。现在许多 系统要求用户将Emai1地址作为口令,以便更好地对访问者进行跟踪。出于安全 的目的,大部分匿名FTP主机一般只允许远程用户下载(download)文件,而不允 许上载(upload)文件。也就是说,用户只能从匿名FTP主机拷贝其需要的文件而 不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措 施以保护自己的文件不至于被用户修改和删除,并
32、防止计算机病毒的侵入。匿名 FTP 一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿 名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和 软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登录。FTP客户端设计的原理,FTP使用两条TCP连接来完成文件传输:控制连接 与数据连接。控制连接用于传输控制,数据连接用于数据输送。在服务器启动后, 服务器就会在端口 21等待客户的连接请求,有用户需要传输文件时,客户与服 务器的端口 21建立一个控制连接,用来传送客户的命令和服务器的应答,该连 接一直保持到客户与服务器通信结束为当客户发出数
33、据传输命令时,服务器会主 动与客户建立数据连接,并与其进行数据交换。客户端用户并不直接处理控制连接上的FTP命令和FTP响应,而是由两个 协议解释器进行处理。用户接口为客户端用户提供一定形式的输入界面,接收用 户的命令,将其转换成标准的FTP命令,最终将控制连接上的FTP响应转换成用 户可理解的方式。在客户与服务器的整个连接期间,控制连接必须保持,而数据 连接却可以根据请求动态地建立和关闭。在最常用的流模式中,文件结束是用数 据连接的关闭来表示的,换句话说,每传输一个文件或文件列表,系统就会再建 立一个新的数据连接。图2 FTP使用的两个TCP连接第3章客户端文件传输系统设计3.1客户端需求分
34、析3.1.1用户需求软件要简单易上手,能够登录到用户指定的服务器上,进行访问和数据的上 传下载与重命名,删除等功能。3.1.2功能需求该系统主要包括以下几个方面:可视化的交互界面模块;2.登录服务器模块;3.浏览服务器/本地目录和 文件模块;4.上传/下载文件模块。由这四个模块构成该系统。3.1.3性能需求整个系统操作应当简便,界面友好,运行稳定,执行速度快。系统本身运 行对计算机硬件平台和操作系统平台要求适中。3.2客户端设计3.2.1客户端整体模块这个部分是本文设计的中心部分,是对客户端进行主要的功能设计和界面设 计。FTP客户端作为用户连接FTP服务器的工具,需要具备一些基本功能模块,
35、如连接、上传、下载等,其中最主要的三大功能模块如下:1、下载功能模块:连接用户指定的FTP服务器,获取服务器目录下的文件列 表,当用户选择项目为文件时,点击下载可以下载用户所需要的文件。选定文件 后提示用户将文件存储在何处,用户选择存储区后开始下载任务。依靠FTP协议的支持,用户下载的文件没有类型和大小限制,即用户可已选 择任何自己想要下载的文件,通过FTP客户端进行下载。2、上传功能模块:用户可以自行选择本机上存储的文件,上传至FTP服务器。 在用户选择存储在服务器的位置后,点击上传,选择所需要上传的文件,即可将 文件上传至服务器。3、连接功能模块:将用户本机与指定的IP地址连接,验证用户命
36、和密码, 在FTP服务器上进行注册。有了这三个基本的功能模块,客户端的基本应用功能即可实现。如图3.1所示:图3 FTP 客户端整体结构模块图客户在启动客户端程序后输入相应的登陆信息就能连接到服务器上,对服务 器上的文件进行浏览、新建、删除、重命名、上传、下载文件等操作,通过断开 结束与服务器的连接。3.2.2客户端流程划分客户端整体流程如图4所示:3.3 ftpclient 类Java类库的存在使它适合于一个不断发展的环境。在类库中我们可以自由 地加入新的方法和实例变量而不会影响用户程序的执行。并且Java通过接口来 支持多重继承,使其比严格的类继承具有更灵活的方式和扩展性。在处理复杂事 物
37、的时候,用到的一种基本手段就是抽象。抽象的目的就是区别事物之间的本质 和不同,面向对象编程(OOP)的实质就是利用类和对象来建立抽象模型。类表 示了对象的类别,是创建对象的蓝本。建立一个事物的抽象模型,本质上就是表 达该事物的性质和行为。使用类来建立抽象模型,是通过在类中定义变量和方法 来实现的。类中定义的属性是一种可存储值的变量,该变量代表着事物的具体性 质。在J2SE中提供了与客户端编程有关的Api,它就是. HYPERLINK ftp:/ftp.FtpClient ftp.FtpClient 类,FtpClient类封装了FTP协议的相关指令与实现细节,提供了一系列的方法, 这些方法涵盖
38、了几乎所有ftp的功能使用FtpClient类设计FTP客户端程序可 以让编程人员轻松地实现登录远程FTP服务器、浏览服务器上的目录、设置传输 协议、上传文件和下载文件等功能。本文所使用的FtpClient类的构造方法和主要方法如下:Public FtpClient(String hostname)此构造函数利用给出的主机名建立一条FTP连接,使用默认端口号。Public void openServer(String hostname)这个方法用于建立一条与指定主机上的FTP服务器的连接,使用默认端口号。Public void login(String username, String pas
39、sword)此方法利用参数username和password登录到FTP服务器。使用过Intemet的用 户应该知道,匿名FTP服务器的登录用户名为anonymous,密码一般用自己的电 子邮件地址。Public void binary():该命令可把传输格式设置为二进制格式。3.4实现思路在NetBeans环境所提供的扩展包中,已经提供了一些网络类的类库一一 .ftp.FtpClient.,该类库主要用于建立FTP连接的类。利用此类的方法,我 们可以远程登录到FTP服务器,列出该服务器上的目录,设置传输协议,以及 传送文件。FtpClient类涵盖了几乎所有FTP的功能,FtpClient的
40、实例变量保存 了有关建立代理的各种信息。当然,还有很多此类开源的库,可以实现FTP 的功能。这里我采用了 FtpClient作为此次毕业设计的资源。以下是部分FtpClient 的常用核心函数说明:FtpClient有三种不同形式的构造函数,此构造函数将创建一 FtpClient类, 但不建立FTP连接。如下:public FtpClient(String hostname,int port)此构造函数利用给出的主机名和端口号建立一条FTP连接。public FtpClient(String hostname)此构造函数利用给出的主机名建立一条FTP连接,使用默认端口号。FtpClient()
41、一旦建立了类FtpClient,FTP连接可以用openServer方法建立,这个类的 方法来打开与FTP服务器的连接。类ftpClient提供了如下两个可用于打开与 FTP服务器之间的连接的方法。public void openServer(String hostname)此方法用于建立一条与指定主机上的FTP服务器的连接,使用默认端口号。public void openServer(String host,int port)此方法用于建立一条与指定主机、指定端口上的FTP服务器的连接。打开连接之后,接下来的工作是注册到FTP服务器。这时需要利用下面的方 法。此方法利用参数username和
42、password登录到FTP服务器。public void login(String username,String password)下面是FtpClient类所提供的一些控制命令。public void cd(String remoteDirectory)该命令用于把远程系统上的目录切换到remoteDirectory所指定的目录。public void cdUp():该命令用于把远程系统上的目录切换到上一级目录。public String pwd():该命令可显示远程系统上的目录状态。public void binary():该命令可把传输格式设置为二进制格式。此外,类FtpClient
43、还提供了可用于传递并检索目录清单和文件的若干方法。 这些方法返回的是可供读或写的输入、输出流。下面是其中一些主要的方法。public TelnetInputStream list()返回与远程机器上当前目录相对应的输入流。public TelnetInputStream get(String filename)获取远程机器上的文件filename,借助TelnetInputStream把该文件传送到 本地。public TelnetOutputStream put(String filename)以写方式打开一输出流,通过这一输出流把文件filename传送到远程计算 机。第4章文件传输系统的
44、实现4.1界面模块实现Java是一个面向对象的程序语言,它使用了很多对象,在NetBeans中使用 的是JDK库(awt,swing),它提供了很多的界面对象,可以很直观的看到设计的 界面。文件处理界面的设计是在jPanel2的基础上实现的,增加了一些其他控件。 它是由两大部分组成:FTP服务器列表,操作时信息列表。还有三个按钮:连接, 断开连接,下载按钮。4.2登录界面实现一般的使用办法是,直接使用构造方法创建一个FtpClient类对象(如果在 构造FtpClient类对象时没有设置参数,则可以使用openServer方法来打开服务 器端口),然后使用login方法来登录,并进行用户认证。
45、以下是界面与登录程序代码:public class mainView extends JFramepublic tFtpDrive ftpDrive;public DropTarget dtDownload;public DropTarget dtUpload;public DragSource ds;public JFileChooser fc;private String selectItem=null;private String lastSelectItem=null;private long lastClickTime = 0;private javax.swing.JPopupMe
46、nu popMenu;private JMenuItem item;private PopMenuListener popMenuListener = new PopMenuListener();JPanel contentPane;XYLayout xYLayout1 = new XYLayout();JPanel jPanel1 = new JPanel();XYLayout xYLayout2 = new XYLayout();JLabel jLabel1 = new JLabel();JLabel jLabel2 = new JLabel();JLabel jLabel3 = new
47、JLabel();JLabel jLabel4 = new JLabel();JTextField server = new JTextField();JTextField port = new JTextField();JTextField user = new JTextField();JPasswordField pw = new JPasswordField();JCheckBox passiveChkB = new JCheckBox();JCheckBox jCheckBox2 = new JCheckBox();JButton bconnect = new JButton();J
48、Button bdisconnect = new JButton();JPanel lPane = new JPanel();JPanel sPane = new JPanel();JButton bDownload = new JButton();BorderLayout borderLayoutl = new BorderLayout();BorderLayout borderLayout2 = new BorderLayout();JScrollPane jScrollPanel = new JScrollPane();JScrollPane jScrollPane2 = new JSc
49、rollPane();JList remoteList = new JList();JTextArea statusList = new JTextArea();JLabel jLabel5 = new JLabel();JLabel jLabel6 = new JLabel();public mainView(tFtpDrive ftpDrive) try setDefaultCloseOperation(EXIT_ON_CLOSE);jbInit();remoteList.addMouseListener(popMenuListener);this.ftpDrive = ftpDrive;
50、dtDownload = new DropTarget(bDownload, new DownloadHandler();dtUpload = new DropTarget(remoteList, new UploadHandler();ds = new DragSource();DragGestureRecognizerdgr = ds.createDefaultDragGestureRecognizer(remoteList,DnDConstants.ACTION_COPY,new DragSourceHandler(); catch (Exception exception) jLabe
51、l1.setText(服务器:);jLabel2.setText(端口:);jLabel3.setText(用户名:);jLabel4.setText(密码:);server.setText(localhost);port.setText(21”);user.setText(client);pw.setText(client);passiveChkB.setHorizontalAlignment(SwingConstants.CENTER);bconnect.setText(连接);bconnect.addActionListener(new mainView_bconnect_actionA
52、dapter(this);bdisconnect.setText(断开连接);bdisconnect.addActionListener(newmainView_bdisconnect_actionAdapter(this);lPane.setBackground(Color.gray);lPane.setLayout(borderLayout1);sPane.setBackground(Color.gray);sPane.setLayout(borderLayout2);bDownload.setText(下载);bDownload.addActionListener(newmainView
53、_bDownload_actionAdapter(this);remoteList.addMouseListener(new mainView_remoteList_mouseAdapter(this);contentPane.add(jPanel1, new XYConstraints(5, 8, 265, 349);jPanel1.add(jLabel1, new XYConstraints(7, 27, 43, 17);jPanel1.add(server, new XYConstraints(69, 13, 170, 30);jPanel1.add(jLabel2, new XYCon
54、straints(7, 69, 46, 18);jPanel1.add(jLabel3, new XYConstraints(7, 109, 49, 21);jPanel1.add(jLabel4, new XYConstraints(7, 149, -1, 18);jPanel1.add(port, new XYConstraints(69, 58, 170, 30);jPanel1.add(user, new XYConstraints(69, 104, 170, 30);jPanel1.add(pw, new XYConstraints(69, 148, 170, 30);jPanel1
55、.add(bdisconnect, new XYConstraints(142, 267, -1, -1);jPanel1.add(bconnect, new XYConstraints(24, 267, 83, -1);sPane.add(jScrollPane2, java.awt.BorderLayout.CENTER);jScrollPane2.getViewport().add(statusList);contentPane.add(bDownload, new XYConstraints(24, 398, 212, 78);contentPane.add(lPane, new XY
56、Constraints(290, 53, 467, 203);lPane.add(jScrollPane1, java.awt.BorderLayout.CENTER);contentPane.add(sPane, new XYConstraints(290, 327, 467, 198);contentPane.add(jLabel6, new XYConstraints(287, 301, 118, 27);contentPane.add(jLabel5, new XYConstraints(291, 23, 133, 28);jScrollPane1.getViewport().add(
57、remoteList); remoteList.setModel(new javax.swing.AbstractListModel() String strings = 欢迎使用tFTPClient! ,用法:,在左边输入相应信息后按【连接】按钮,连接FTP服 务器;public int getSize() return strings.length; public Object getElementAt(int i) return stringsi; );登录验证服务器代码:private void connectHandler(java.awt.event.ActionEvent evt
58、) String anonymous = client;String anpassword = client;String dMessage = null;String dTitle = FTP Login Error;int dType = JOptionPane.ERROR_MESSAGE;if(evt.getSource() = bconnect)if(server.getText().length() = 0)dMessage =请输入FTP服务器的Host/IP地址”;JOptionPane.showMessageDialog( null,dMessage,dTitle,dType)
59、; return;if(user.getText().length() = 0 & !jCheckBox2.isSelected() dMessage =”请输入用户帐号”;JOptionPane.showMessageDialog( null,dMessage,dTitle,dType); return;datsktsvr = new ServerSocket(0);/ 获得一个随机端口 port = datsktsvr.getLocalPort();/ 设置 host&portStringBuilder cmd = new StringBuilder(PORT );cmd.append(c
60、tlskt.getLocalAddress().getHostAddress();返回InetAddress对象的“X.Y.W.Z”形式的IP地址for (int i = 0; i cmd.length(); i+) (/ 把 55 形式 转换成 202,168,255,255 形式if (. = cmd.charAt(i)cmd.setCharAt(i, ,);/ port = secondlast*256 + lastcmd.append(,);cmd.append(Integer.toString(port / 256);cmd.append(,);cmd.append(Integer.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店大堂企业年会租赁协议
- 电子厂操作员聘用合同范例
- 智能广告监理服务承诺书范本
- 酿酒师聘用合同酿酒行业专用
- 建筑设计公司资金周转
- 二年级数学下册课件《用算盘表示数》
- 《电喷雾质谱》课件
- 2024年销售岗位工作总结
- 胆囊结石术前的护理
- 《焊接工艺》课件
- 2024年四川省眉山市公开招聘警务辅助人员(辅警)笔试专项训练题试卷(3)含答案
- 湖南工业大学《自然语言处理》2022-2023学年第一学期期末试卷
- 2024-2030年撰写:中国软件行业发展趋势及竞争调研分析报告
- 2024年律师协会工作计划样本(三篇)
- 【MOOC】融合新闻:通往未来新闻之路-暨南大学 中国大学慕课MOOC答案
- 《技术创新体系建设》课件
- 2024年-2025年电梯检验员考试题库及答案
- JGJT46-2024《施工现场临时用电安全技术标准》条文解读
- 江苏省环保集团有限公司招聘笔试题库2024
- 预应力混凝土管桩(L21G404)
- 办公耗材采购服务方案(技术方案)
评论
0/150
提交评论