Java课程设计FTP客户端说明书_第1页
Java课程设计FTP客户端说明书_第2页
Java课程设计FTP客户端说明书_第3页
Java课程设计FTP客户端说明书_第4页
Java课程设计FTP客户端说明书_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FTP是Internet上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。用FTP将信息下载到本地是一件十分普遍的事。也随之出现了许多下载软件。尽管远程登录(Telnet)提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机中的文件方便。如果用户想使用其它计算机上的文件,最理想的方法就是把它COPY到自己的计算机中,以便在本地计算机上操作。FTP正是完成这项工作的工具,你可以在任意一个经过文件传输协议(FTP)访问的公共有效的联机数据库或文档中找到你想要的任何东西。FTP是Internet上用来传送文件的协议。它是为了我们能够在Internet上互相传送文件而制定的文件传送标

2、准,规定了Internet上文件如何传送。通过FTP协议,我们就可以跟Internet上的FTP服务器进行文件的上传或下载。本文以实现一个简单易用的FTP客户端为目标,通过分析FTP协议的基本工作原理和FTP的数据传输原理,研究如何使用Java工具对FTP客户端进行设计,选择Java类库中的ftpclient类来实现FTP客户端程序的上传下载等主要功能。关键字:Ftp客户端、FTP协议、工作原理、上传下载 目录 1.4 一个完善的系统项目分析00123334475556666667772829引 言目前,FTP服务已经是网络上广泛使用的一种服务了,它是建立在FTP协议上的用于网络环境下进行文件

3、传输的一种文件传输系统,几乎可以传输各种类型的文件,如文本文件,声音文件,图像文件等。一个文件传输系统有服务器端程序和客户端程序共同组成的,客户端程序提供用户操作的界面并完成文件的上传和下载。在网络应用中,FTP有着非常重要的地位,在Internet中一个十分重要的就是资源,而各种各样的资源大多数都是放在FTP服务器中的,为了获得这些资源,我们必须使用FTP客户端软件。目前流行的有cuteFTP,WS_FTP,ByteCatcher,FTP Voyage等。为了方便用户的使用,本文将介绍一种基于Java的FTP客户端程序的设计与实现。 本文所设计的FTP客户端,利用已有网络环境设计并实现简单应

4、用层协议,掌握TCP/IP 网络应用程序基本的设计方法和实现技巧,可以根据服务器IP、用户名、密码和端口号登录指定的FTP服务器,可以查看服务器内容列表,下载选定的文件,重命名或删除指定的文件/文件夹,也可以把本地文件上传到服务器上。适合大多数用户使用,界面设计的很简单,使用户可以一目了然,而且具备FTP客户端的基本功能,可以作为下载、上传文件的工具来使用。1、课题描述文件传送是各种计算机网络都实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是Internet使用最广泛的协议之一。 现如今FTP早已应用在网络的各个方面,比如我们在访问网络上

5、的资源时,经常会遇到需要连接FTP服务器来下载,或者你制作了一个网站,想要将其上传至服务器,让大家能够访问它,这个时候就会用到FTP客户端。虽然平时使用windows自带的IE浏览器即可实现对FTP服务器的访问,但是IE只是个很粗糙的FTP客户端。IE浏览器在6.0以下的版本不支持PASV方式访问服务器,而且IE浏览器在登录FTP服务器的时候,无法查看返回的信息,在出错的时候,无法找到错误的原因,因此在使用上很不方便。现在大多数的FTP客户端软件都是收费版的,而且以英文版居多,使用上操作很复杂,目前流行的有CoreFtp、AceFtp、FtpVoyager等,但是大多数用户并不习惯使用这些软件

6、。 本文首先分析了FTP协议,FTP的工作原理等,然后介绍了如何使用Java工具来设计和实现一个简单的FTP客户端。使用本FTP客户端,可以使用户轻松的下载、上传网络资源。 用户对象是需要对文件传输要求使用简便,希望可操作性强的广大网上用户。2、程序运行环境与系统结构此次课设的“FTP客户端”是基于Java编程语言在Eclipse下开发的文件传输软件,正常使用该软件您务必保证您的电脑配置满足如下要求:1) 运行平台(硬件环境):Windows 7 旗舰版2)系统开发平台 :Eclipse3)系统开发语言:Java5)有相对应的FTP服务器或者您有更加适合的运行环境会更好!本次课设的FTP客户端

7、是在Windows 7 (旗舰版)+ Eclipse + jdk1.6.0_18下使用Java编程语言进行开发,并与一个FTP服务器QuickEasyFTPServer一起使用的。3、FTP客户端特点FTP是Internet上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。用FTP将信息下载到本地是一件十分普遍的事。也随之出现了许多下载软件。尽管远程登录(Telnet)提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机中的文件方便。如果用户想使用其它计算机上的文件,最理想的方法就是把它COPY到自己的计算机中,以便在本地计算机上操作。FTP正是完成这项工作的工具,你可以在任

8、意一个经过文件传输协议(FTP)访问的公共有效的联机数据库或文档中找到你想要的任何东西。传统的数据库应用系统采用的是客户机/服务器(Client/Server)模式,有高度的交互性,高效的用户界面等优点.且采用Java 编程语言进行开发。Java 编程语言的主要特性是个简单、面向对象、分布式解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。 第1章 项目分析文件传输协议(FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。FTP的目标是提高文件的共享性和可靠高效地传送数据。在传输文件时,FTP 客户端程序先与服务器建立连接,然后向服务器发送命令。服务器收到命令后

9、给予响应,并执行命令。FTP 协议与操作系统无关,任何操作系统上的程序只要符合 FTP 协议,就可以相互传输数据。相比其他协议,如 HTTP 协议,FTP 协议要复杂一些。与一般的 C/S 应用不同点在于一般的C/S 应用程序一般只会建立一个 Socket 连接,这个连接同时处理服务器端和客户端的连接命令和数据传输。而FTP协议中将命令与数据分开传送的方法提高了效率。 问题描述编写一个FTP客户端软件,该系统能够执行FTP的常用命令,能够完成FTP的基本操作,支持FTP的主要特性。要求采用图形用户界面,不得使用现成的FTP组件。即:1.实现一个图形用户界面的FTP客户端,保证文件的安全传输和存

10、储。2.通过输入服务器地址、用户名和密码、可以实现FTP主机的登录。3.提供本地文件的上传功能,可对FTP主机文件进行下载、上传、删除、重命名等文件操作。 FTP协议分析1.2.1 FTP的工作原理 FTP(FileTransferProtocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序。用户可以通过它把自己机器与世界各地所有运行FTP协议的服务器相连,访问服务器上的资源和信息。FTP协议在TCP/IP协议栈中的位置如表1: 表1 TCP/IP协议栈HTTP FTP TELN SMTP DNS TFTP NMP 应用层 TCP UDP 传输

11、层 IP 互联网络层 X25 ISDN LAN WLAN FDDI ATM 网络接口层当启动FTP从远程计算机拷贝文件时,事实上启动了两个程序:一个本地机器上的FTP客户端程序,它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应请求把你指定的文件传送到你的计算机中。FTP采 用“客户端/服务器”(C/S)方式,用户要在自己的本地计算机上安装FTP客户端程序。 从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP协议采用客户端/服务器(Client/Sever)模式,由FTP客户端程序和FTP服务器端程序组成。使用时

12、,先启动FTP客户端程序与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。但是FTP有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。但匿名FTP服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问者进行跟综。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载文件,而不

13、允许上载文件。也就是说,用户只能从匿名FTP主机拷贝其需要的文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登陆。 1.2.2 FTP工作模式FTP采用C/S(客户端/服务器)模式进行通信,但与其他的C/S模式网络通信协议又有一个很大的区别。通常在进行HTTP通信或是TELNET

14、通信的时候,只需要一个端口进行通信。即客户端只需要连接一个端口进行数据通信。如TELNET的默认端口是23,用户从头到尾都只需使用这个端口。但是FTP通信除了有一个默认端口21之外,还需要其他的端口。其中默认端口(21)主要进行控制连接,进行命令协议和服务器端的响应码的传输;另外一个非标准端口主要进行数据传递,如文件的上载、下载等。至于非标准端口的产生则要根据用户选择的连接模式而定:如果客户选择的是主动模式(PORT),则需要用户端提供给服务器一个IP地址和一个非标准端口;而如果用户采用被动模式(PASV),则服务器端需要提供给客户端一个IP地址和一个非标准端口。而在此次课设中我采用的就是主动

15、模式。下表是几个著名的TCP端口号: 表2 TCP端口号TCP端口号 关键字 描述 20 FTP-DATA文件传输协议数据 21 FTP文件传输协议控制 23 TELENET 远程登录协议 25 SMTP 简单邮件传输协议 53 DOMAIN 域名服务器 80 HTTP超文本传输协议 110 POP3 邮局协议 119 NNTP 新闻传送协议FTP中字节大小有两个:逻辑字节大小和用于传输的字节大小。后者通常是8位 ,而前者可不一定是多少了。传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。控制连接是建立在USER-PIT和SERVER-PI之间用于交换命令与应答的通信链路。数据连接是传输

16、数据的全双工连接,传输数据可以发生在服务器DTP和用户DTP之间也可以发生在两个服务器DTP之间,FTP可以传输非连续的文件,这些文件的一部分称为页。服务器DTP代表一种传输过程,它通常处于“主动”状态,它和侦听端口建立数据连接,它还可以为传输和存储设置参数,并根据PI的指令传输数据。当然,DTP也可以转入“被动”状态。服务器FTP进程,它是和用户FTP进程一起工作的,它由PI和DTP组成。至于用户FTP进程则是由PI,DTP和用户接口组成的。具体工作模式如图1所示:FTP请求用户用户接口服务器aFTP响应用户a1文件传输系统文件传输系统用户b2数据连接服务器 b 服务器-FTP用户FTP 图

17、1FTP工作模式图上图中用户PI开始控制连接,控制连接与Telnet协议很象。在开始阶段,标准FTP命令由用户PI产生并通过控制连接传送到服务器进程。服务器PI向用户PI返回标准应答。FTP命令指定数据连接参数和文件系统操作。用户DTP在特定数据端口侦听,服务器开始数据连接并以指定的参数开始数据传输。数据端口不必在开始FTP命令的机器上,但用户或用户FTP进程必须确定它在指定的数据端口上侦听.这个数据连接是全双工的。1.FTP传输模式 FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对

18、话,并且能访问Internet,你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。 ASCII传输方式 假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印

19、字符)。在拷贝任何非文本文件之前,用binary命令告诉ftp逐字拷贝,不要对这些文件进行处理。1. 在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。2015-3-12至2015-3-21 : 需求分析阶段2015-3-21至2015-3-22:设

20、计界面阶段2015-3-22至2015-3-26: 编码阶段2015-3-26至2015-4-1: 测试阶段2015-3-29至2015-4-2: 文档编写阶段一个完整系统项目分析(1)项目任务的主要内容和要求:遵循FTP协议,实现一个FTP的客户端程序,根据服务器IP、用户名、密码和端口号登录指定的FTP服务器,可以查看服务器内容列表,下载选定的文件,重命名或删除指定的文件/文件夹,也可以把本地文件上传到服务器上。(2)项目设计(研究)思路:FTP客户端可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步

21、处理。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登录进程。FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。根据要求分析,对其所要实现的功能进行划分实现,首先要完成主机与服务器之间的连接与关闭操作。其次主要完成文件的显示、新建文件、删除文件等。然后要完成主机与服务器连接成功以后文件的

22、上传与下载。最后要是保存一些登录信息和一些简单的配置信息。(3)具体成果形式和要求FTP客户端主要目标是:促进文件的共享(计算机程序或数据);鼓励间接或者隐式的使用远程计算机;向用户屏蔽不同主机中各种文件存储系统的细节;可靠和高效的传输数据。要求根据账号和密码登录指定的FTP服务器,可以查看服务器内容列表,下载选定的文件,重命名或删除指定的文件/文件夹,也可以把本地文件上传到服务器上。第2章 系统分析与设计系统分析 FTP客户端作为用户连接FTP服务器的工具,需要具备一些基本功能模块,如连接、上传、下载等,其中最主要的三大功能模块如下:1、下载功能模块:连接用户指定的FTP服务器,获取服务器目

23、录下的文件列表,当用户选择项目为文件时,点击下载可以下载用户所需要的文件。选定文件后提示用户将文件存储在何处,用户选择存储区后开始下载任务。依靠FTP协议的支持,用户下载的文件没有类型和大小限制,即用户可已选择任何自己想要下载的文件,通过FTP客户端进行下载。2、上传功能模块:用户可以自行选择本机上存储的文件,上传至FTP服务器。在用户选择存储在服务器的位置后,点击上传,选择所需要上传的文件,即可将文件上传至服务器。 3、连接功能模块:将用户本机与指定的IP地址连接,验证用户名和密码,在FTP服务器上进行注册。有了这三个基本的功能模块,客户端的基本应用功能即可实现。2.1.1 设计工具程序设计

24、中用到的主要语言就是Java,Java是SUN公司开发的一种面向对象的新一代网络编程语言,它可以在各种不同的机器、操作系统的网络环境中进行开发,具有解释型语言(如Basic语言)和编译型语言(如C语言)的特性。Java摒弃了C+中各种弊大于利的功能和许多很少用到的功能,用Java开发的程序可以在网络上传输,并运行于任何客户机上。使用Java语言可以方便的设计出网络应用类的程序,而且Java的移植性很好,在 、其应用程序在各种机器上都能无差别的执行为了使FTP客户端能适应大多数平台下的使用,我选择使用Java语言在Eclipse下来实现。2.1.2 系统模型设计控制进程数据传送进程;用户接口命令

25、与应答控制连接数据连接文件传输数据传送进程控制进程服务器客户端图2.2 FTP的基本模型2.1.3 系统工作流程设计 客户端登录登录验证操作内容列表查看文件列表连接成功至服务器服务器端上传文件重命名文件上翻文件列表删除文件下翻文件列表下载文件文件管理连接失败退出用户输入服务器地址及用户名和密码2.1.4客户端连接流程图 连接服务器发送用户名及是否连接成功密码至服务器在信息显示模块显示连接成功是获取服务器文件列表 否在信息显示模块显示连接失败刷新服务器文件显示文件列表图1 客户端连接流程图连接的结果有两种,即图中显示的连接失败和连接成功。2.1.5上传子模块流程图 用户可以选择需要上传的文件,并

26、指定上传位置,当用户点击上传后,将本机上的文件上传至FTP服务器。下图为上传子模块流程图。选择要上传文件,点击右键选择上传弹出文件选择对话框获取用户选择的文件名新建一个上传任务登录到FTP服务器目标目录下上传是否成功弹出对话框显示上传成功是更新服务器文件列表 否 重新获取服 务器文件列表弹出对话框显示上传失败 清除线程 图4 上传模块流程图上传的结果有两种,上传失败和成功,失败时会提示用户上传失败,原因可能是权限,如果成功上传,则提示上传成功。2.1.6下载子模块流程图当用户在服务器文件列表中选择想要下载的文件后,选择需要下载文件在本机上的存储位置,将服务器上的文件下载至本机。下图为上传子模块

27、流程图。选择要下载的文件单击右键选择下载获取文件信息选择文件在本机存储位置将信息传送至任务新建下载任务登录到FTP服务器目标目录下下载是否成功弹出对话框显示下载成功是更新服务器文件列表 否 重新获取服务器文件列表弹出对话框显示下载失败清除线程图5下载模块流程图2.2 系统设计在软件开发时期,设计阶段是富有活力和最需要发挥创造力的阶段。设计的目标,是细化解决方案的可视化设计模式,确保设计模型终能平滑的过度到程序代码。设计的任务就是把分析阶段产生分析模型转换为用适当手段表示的软件设计模型。数据输入模块详细设计该界面用来记录用来输入服务器的站点,用户名和密码信息,然后将信息发送到服务器进行验证,利用

28、Jtextfiled构件来实现。客户端一共有4个文本输入框,分别为服务器地址输入框url,用户名输入框username,密码输入框password 和端口号port。在程序运行时,用户在输入框url中输入的FTP服务器站点、用户在输入框username中输入的用户名、用户在输入框password 中输入密码,用户在端口号输入框port中输入端口号。利用getText()函数获取输入框中的数据。JTextField类的定义:private JTextField url = new JTextField();/FTP服务器地址private JTextField port = new JTextF

29、ield();/FTP服务器端口private JTextField username = new JTextField();/用户名private JTextField password = new JTextField();/密码文件信息显示界面详细设计该界面的作用是是显示服务器文件列表,利用Jscrollpane构件来实现。在客户端主界面创建一个Jscrollpane,命名为fileScrollPane,并置于主界面中间。JScrollPane类的定义:JScrollPane fileScrollPane;fileScrollPane = new JScrollPane(fileList

30、,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);fileScrollPane.setPreferredSize(new Dimension(300,400);操作模块详细设计操作的实现使用JMenuItem和JPopupMenu构件实现,客户端共有刷新、删除、上传、下载、上一级目、重命名、显示日志信息等7个操作,分别命名为refresh 、delete 、 download 、 upload 、rename、upDir和showLog。JMenuItem类的定义:priv

31、ate JPopupMenu popup = new JPopupMenu();/建立一个弹出式菜单private JMenuItem refresh = new JMenuItem(刷新); /右键弹出菜单private JMenuItem delete = new JMenuItem(删除); private JMenuItem download = new JMenuItem(下载); private JMenuItem upload = new JMenuItem(上传); private JMenuItem rename = new JMenuItem(重命名);private JM

32、enuItem upDir = new JMenuItem(上级目录);private JMenuItem showLog = new JMenuItem(显示日志信息);每个操作都有自己的方法来实现各自的功能,分别如下连接: public String connect(String dir, String hostname, int port, String username,String passwd) 上传:uploadFile(String localFile, String targetFileName)下载:downloadFile(String srcFileName, Stri

33、ng targetFileName)删除:deleteFile(String fileName)断开:close() 上一级目录:upDir()刷新:update()重命名: renameFile(String oldName, String newName) 2.3 具体功能模块实现使用SUN公司提供的FTP客户端类库。主要包括4个类:编写FtpBean类实现业务逻辑,包含一个FtpClient类的对象ftpClient。包含的方法如下:(1) 建立连接String connect(String dir, String hostname, int port, String username,

34、String passwd)使用 ftpClient = new FtpClient(hostname, port); ftpClient.login(username, passwd);(2) 获取文件名列表List getFileNameList()使用 List fileNameList = new ArrayList();/在fileNameList中存取String类型的变量 InputStreamReader isr = null;/ InputStreamReader 是字节流通向字符流的桥梁 BufferedReader br = null;isr = new InputStr

35、eamReader(this.ftpCList(this.getDir();br = new BufferedReader(isr);获取输入流来得到目录中的文件信息(3) 判断路径boolean isDir(String line)使用line.startsWith(d)来判断(4) 设置路径boolean setPath(String path)使用ftpClient.cd(path);实现(5) 上传文件boolean uploadFile(String localFile, String targetFileName)使用TelnetOutputStream tos

36、 = null; RandomAccessFile sendFile = null; DataOutputStream dos = null; try File file = new File(localFile); sendFile = new RandomAccessFile(file, r); sendFile.seek(0); tos = this.ftpClient.put(targetFileName); dos = new DataOutputStream(tos); int ch = 0; while (sendFile.getFilePointer() sendFile.le

37、ngth() ch = sendFile.read(); dos.write(ch); 获取文件输出流,读取数据并写入文件(6) 下载文件boolean downloadFile(String srcFileName, String targetFileName)使用TelnetInputStream tis = null; RandomAccessFile getFile = null; boolean result = true; try File file = new File(targetFileName); getFile = new RandomAccessFile(file, r

38、w); getFile.seek(0); tis = this.ftpClient.get(srcFileName); DataInputStream dis = new DataInputStream(tis); int ch = 0; while (true) ch = dis.read(); if (ch 0) break;getFile.write(ch) getFile.close(); 获取文件输入流,读取数据并写入文件(7) 进入上一级文件目录up()使用ftpClient.cdUp();实现(8) 进入下一级文件目录downDir()使用上面的方法来实现下一级文件目录的访问(9

39、) 给文件重命名boolean renameFile(String oldName, String newName)使用ftpClient.rename(oldName, newName);来实现(10) 删除文件deleteFile(String fileName)使用String cmd = DELE + fileName + rn; ftpClient.sendServer(cmd);来实现(11) 获取当前路径String getDir()使用return this.ftpClient.pwd();实现(12) 关闭连接String close()使用ftpClient.closeSe

40、rver();实现第3章 实现与测试(1) 用户登录初始界面:运行Ftp.java,在文件显示框中点击右键,得初始界面如下: (2)连接主机服务器成功界面:(3)服务器的用户信息: (4)文件上传 在窗体文件显示处点击鼠标右键,选择上传,按照步骤提示操作在主机中选择一个文件(如text.txt)上传,即可上传文件。(5)文件下载在窗体文件显示处选择想要下载的文件(如text1.txt),点击鼠标右键,选择下载,并自己选择自己希望的文件的存放路径,并为文件命名,即可成功下载文件。命名为66.txt,下载存放于G盘Test文件夹中。在G盘中我们可以看到66.txt文件。若是没有先选择文件就点右键选

41、择下载,则会出现提示如下:(6)删除文件 步骤如下:点击右键选择删除。点击确定按钮。(7)重命名步骤如下: 选择要重命名的文件,点击右键选择重命名,在弹出的窗体中写入新的名称,点击确定即可。(8) 打开日志记录文件在文件显示板上单击右键,选择“显示日志信息”即可查看日志记录第4章 系统其他设计补充接口设计用户接口本系统以鼠标和键盘为用户接口,方便用户对在线考试系统的有效操作。打开系统的主界面,用户输入正确的服务器IP,用户名,端口号和密码就能与服务器相连接,即可以使用FTP客户端功能;否则,将一直停留在主界面,无法登录主机。外部接口本系统所用的开发工具是Eclipse,在和用户进行数据交互的时

42、候是通过服务器。必须安装 Windows 2000 以上版本,必须留有100MB以上的硬盘空间,计算机在PII以上运行效果更佳 ,且安装该程序是在32位操作系统和JDK为版本6下运行的。内部接口设计共同模块,提高代码复用程度。运行设计运行模块组合(1)FTP客户端的3大主要模块在服务器启动并与之已建立连接的时候完成所有模块加载工作,随时等候用户的调用。(2)用户可以根据自己的需要进行相应的操作。运行控制(1)在页面上,通过鼠标点击触发相应的操作。(2)在页面上,也可以通过Tab键、回车键等功能键完成某些特定的功能。4.3 补救措施定期对系统进行文件处理及备份。采用硬盘做备份设备,使用主机硬盘提

43、供的备份功能定期对数据进行备份。一旦系统遭遇到意外破坏,就不怕自己的重要文件丢失,本系统未提供自动恢复功能,只能由系统管理员手动进行恢复。4.4 系统维护设计定期重启客户端系统;客户端和服务器优化,包括整理系统空间和性能优化。系统运行时,应该具有一定的容错能力(如出现错误评判结果后,可以手工评判或者选择重新评判),而且一般的非正常操作不应该影响系统的正常使用。一旦系统崩溃或出现故障导致系统不能运行,在正常的工作日,应该能够在4个小时内恢复系统正常运行,在节假日等非工作时间,应该能够在24小时内恢复系统正常运行。周期性地把磁盘信息记录到磁带上去。第5章 课设总结系统不足与展望本FTP客户端限于我

44、的精力、技术和时间有限,因此要改进的地方比较多,其中有许多功能模块未能实现,如还未能实现新建文件夹、多文件传输、键盘快捷键设置、上下级目录翻转和影像文件传输等等,所以整个系统看起来没有实际那么复杂,未能和我所设想的那么完整。其实还可以增加更多的功能,比如文件夹的新建,文件夹排序,文件管理,传输的方式的改善和多线程传输等等,由于时间与能力的关系,因而无法完成。我真想能有更多的时间去探索、去研究,去完成我所能完成的所有可以想到的功能模块。5.2 总结经过需求分析、设计、开发、测试,本系统已成型,其中主要使用了Eclipse、Java等相关技术。这些技术的实现,满足了系统的需要,优化了系统的性能。使

45、用模块化设计,有助于编程人员的维护和系统的再次开发。在ftp客户端中,已经完成能够实现要求的功能,但是对于FTP客户端实际上还存在以下不足之处,首先是代码不简练,造成冗余;然后是考虑问题的不足,没有全面的站在用户的角度上去思考问题。最后是检测的不彻底,程序还有待改进。对于在编程中遇到的问题,就是对待问题时,往往眼高手低,没有考虑全面。此次FTP软件的设计与开发,从其功能上讲没有任何新的功能。实现了FTP的基本功能。能获取系统驱动器信息,能根据路径来显示你文件夹信息。能在软件中对文件进行添加和删除操作,及文件的上传和下载操作。外观基本上算是比较美观。完成了基本的FTP软件功能。FTP下载软件开发

46、不管是在国内外都已经了十分成熟的技术,功能都比较齐全和不错。但是此次课程设计的对我的最大收获是了解了JAVA开发Windows应用程序开发,对新的开发语言JAVA有了了解。对FTP工作过程也有了一定的了解。也可以给一些初学FTP客户端软件开发一些帮助。本来还尝试添加美化界面、给按钮添加图片等等前面预想的功能,但由于自己的知识比较有限,所以只好作罢。而且设置背景还真的不太好弄,原来JFrame还有分层的,要把图片放在最底层,还要使内容窗格透明,这样才能实现设置背景的效果,但是因为老是出错我没能很好的完成预想效果。但这也会让我以后更加的努力去学好JAVA,在以后的编程中,JAVA真的个很好的编程语

47、言。这次程序设计也是一个毅力的考验过程。有时候往往只是一个小小的错误,却要花出几小时甚至是一天的时间才可能发现它,所以在这个过程不能过于急躁,要把那部分的代码挑出来一一调试,来缩小范围,找出错误。所以,这次课程设计给我的收获还是很多的,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。最重要的是,我知道了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正掌握这门技术。总之,此次课程设计对我的Java编程语言和计算机网络技术的学习可谓影响深远、意义重大,可以说在课程设计的过程中,使我比原来更加的熟悉和认识到这

48、个技术的好处和特点。在这个过程中我主要学会坚持,还要有耐心和恒心。在这个行业中,不仅锻炼人的思考方式,还锻炼着人的性格。我相信在老师的严格要求下,在以后的社会实践中定能不断的提升自己。附录1: 参考文献参考文献(1)Java课程设计(第二版),耿祥义,清华大学出版社。(2)Java课程设计案例精编,张广彬等,清华大学出版社。(3)JSP通用模块及典型系统开发实例导航,王夕宁,王晓平等,人民邮电出版社.(4)JSP数据库系统开发案例精选,明日科技,王国辉,王易等, 北京人民邮电出版社. (5)Java Web应用开发:J2EE和Tomcat,蔡剑,景楠等,清华大学出版社. (6)Java语言程序

49、设计基础篇Y.Daniel Liang(美)著,机械工程出版社。网络资料:JAVA窗体快速开发(字体修正版)_百度文库(8)谢希仁.计算机网络.北京:电子工业出版社,2012;附录2: 主要源程序publicclass Ftp extends JFrameFtpBean ftp=new FtpBean();/FTP客户端对象private FileWriter write ;private PrintWriter out;private Date time;private JTextField url = new JTextField();/FTP服务器地址private JTextField

50、 port = new JTextField();/FTP服务器端口private JTextField username = new JTextField();/用户名private JTextField password = new JTextField();/密码private JTextField status = new JTextField();/当前状态private JButton connectButton=new JButton(连接);/连接按钮private JButton closeButton=new JButton(断开连接);/断开连接按钮private JPo

51、pupMenu popup = new JPopupMenu();/建立一个弹出式菜单private JMenuItem refresh = new JMenuItem(刷新); /右键弹出菜单private JMenuItem delete = new JMenuItem(删除); private JMenuItem download = new JMenuItem(下载); private JMenuItem upload = new JMenuItem(上传); private JMenuItem rename = new JMenuItem(重命名);private JMenuItem

52、 upDir = new JMenuItem(上级目录);private JMenuItem showLog = new JMenuItem(显示日志信息);final DefaultListModel m=new DefaultListModel(); /显示文件列表JList fileList = new JList(m);/设置一组数组JScrollPane fileScrollPane;private Dimension faceSize = new Dimension(400, 400);/框架大小public Ftp()init(); createPopup(); /弹出菜单tim

53、e = new Date();trywrite = new FileWriter(log.txt,true);out = new PrintWriter(write,true);catch(IOException ioe)ioe.printStackTrace();status.setEditable(false);this.add(status,BorderLayout.SOUTH);/放置操作信息显示板connectButton.addActionListener( new ActionListener()publicvoid actionPerformed(ActionEvent e)connect(););closeButton.addActionListener(new ActionListener()publicvoid actionPerformed(ActionEvent e)close();time = new Date();out.println(time+ 离开服务器:+url.getText(););this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/添加框架的关闭事件处理this.pack(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论