




免费预览已结束,剩余66页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学院本科毕业设计(论文)( 届)论文题目 FTP协议的研究与客户端实现(英文) The FTP Agreements And The Client Side Realize 所在学院 电子信息学院 专业班级 电子本 学生姓名 学号 指导教师 职称 指导教师 职称 完成日期 年 月 日FTP协议的研究与客户端实现 2008年4月摘 要本论文简单的介绍了FTP协议以及FTP客户端的开发环境,详细的介绍了FtpClient类在设计FTP客户端的相关知识和利用FtpClient 类来完成FTP大部分的功能。本软件采用鼠标监听事件来实现鼠标拖动上传、下载文件。利用文件输出、输入流实现文件的传输和登陆帐号信息的管理功能。本设计不仅可以使用用户名、密码来登陆服务器,也可以匿名登陆服务器,能拖动上传下载文件,管理登陆账户信息、显示操作日志。本设计完成了FTP客户端的制作和测试,完成了基于Java语言的程序设计。关键词:FTP协议;FtpClient;鼠标拖动;上传与下载;鼠标监听事件AbstractIn this paper, a brief introduction of the FTP protocol, and the FTP client development environment. Described in detail in the design of the FtpClient FTP client knowledge and the use of FTP FtpClient category to complete most of the functions.The software uses the mouse to achieve eavesdropping incident mouse drag upload, download files. Use of document output, input streams to achieve file transfer and landing Account information management functions. This design can be used not only user names and passwords to landing server, the server can be anonymous landing can drag uploading and downloading documents, management landing account information, log shows that operation.The design of the FTP client to complete the production and testing is completed based on the Java programming language.Key Words: FTP protocol; FtpClient;Drag the mouse; Upload and download; Mouse eavesdropping incident目 录1引言12文件传输协议(FTP)简介22.1 FTP连接22.2 FTP数据处理32.2.1 文件类型处理32.2.2 格式控制42.2.3 文件结构52.2.4 传输模式52.3 FTP命令及其响应62.4 连接处理过程73开发工具及环境介绍83.1 Java语言概述83.1.1 Java语言83.1.2 Java虚拟机103.1.3 Java开发运行环境介绍113.2 利用JBuilder2005开发FTP客户端133.2.1 JBuilder2005工作界面介绍133.2.2 JBuilder2005中FTP库简介154FTP客户端设计184.1 FTP系统工作流程与结构184.2 系统的图形界面设计204.2.1 FTP主界面的设计204.2.2 设置界面的设计214.2.3 操作日志界面的设计214.3 登录程序的设计224.3浏览程序的设计244.3.1 服务器浏览程序244.3.2 本地浏览程序274.4 文件上传下载的设计304.4.1文件的上传和下载设计304.4.2 用上传、下载按钮和鼠标拖动来实现文件上传下载的设计344.5 帐户信息管理程序设计374.5.1 设计之前的准备384.5.2 帐户信息程序465测试485.1 测试计划485.2 测试遇到的问题及解决的方法485.2.1 中文显示问题495.2.2匿名登陆失败515.2.3保存按键失灵525.2.4本地浏览初始化出错535.3 最终测试结果536总结55致 谢56参考文献57附录1 毕业设计作品说明书58 - 65 -1引言21世纪是网络的时代,是信息的时代,是多媒体的时代。Internet技术的迅猛发展与普及,推动了世界范围的信息传输和信息交流。随着Internet的发展,Internet将提供越来越多的服务。但就目前而言,网民使用较多的主要有下列服务:电子邮件(E-mail),文件传输(FTP),远程登录(Telnet),万维网(World Wide Web),新闻组(Newsgroup/Usenet)和电子公告牌(BBS),聊天系统(chat)。 Internet如此流行,其中FTP功不可没。成千上万的数据、软件分布在世界各地,有了ftp,足不出户,只要敲几个字,就能轻而易举地得到想要的。现在全世界已有10000多个FTP文件服务器对所有Internet用户开放,用户可以通过与Internet相连的计算机,把自己需要的文件传过来。现在,已经有许多互联网站点都建立了可供大众访问的资料库,这些资料都可以被通过FTP获取。匿名FTP使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。而且,这一切是免费的。Internet之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。匿名FTP是Internet网上发布软件的常用方法。Internet上的很多程序是由个人创造和维护的,他们通过匿名FTP把它们分发给世界各地的人们。也可以找到电子杂志、用户网讨论组的档案、技术文件等等。一个经验丰富的Internet用户,将在很大程度上依赖于匿名FTP。2文件传输协议(FTP)简介 FTP(File Transfer Protocal) 1,是文件传输协议的简称。FTP一般用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行的FTP协议的服务器相连,访问服务器上的大量程序和信息。就像很多的Internet协议一样,交互对人是很有用出的,但是它实际上是为了机器而考虑,这就是为什么FTP成为最早的Internet标准之一的原因。与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机中的文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去,实现资源共享。2.1 FTP连接FTP使用两条TCP2连接来完成文件的传输:控制连接与数据连接。控制连接用于传输控制,数据连接用于数据传输。在服务器启动后,服务器就会在端口21(默认的情况下)等待客户的连接请求,有用户需要传输文件时,客户与服务器的端口21建立一个控制连接,用来传送客户的命令和服务器的应答,该连接一直保持道客户端与服务器通信结束为止。当客户端发出数据传输命令时,服务器就会主动与客户端建立数据连接(默认端口为20),并与其进行数据交换。图2-1给出了FTP的各个功能模块及两条TCP连接的结构示意图。如图所示,客户端用户并不直接处理控制连接上的FTP命令和FTP响应,而是由两个协议解释器进行处理。用户接口为客户端用户提供一定形式的可视操作界面,在这里接受用户的命令,在客户端协议解释器中将用户命令转换成标准的FTP命令,最终将控制连接上的FTP响应转换成用户可以理解的方式。数据连接(端口20)FTP命令FTP响应控制连接(端口21)客户端协议解释器客户端数据传输服务器端协议解释器服务器端协议解释器文件系统文件系统用户用户接口图 2-1 FTP功能模块及FTP连接2.2 FTP数据处理FTP协议中规范了多种用于文件控制的传输和储存方式,主要包括以下四个方面。2.2.1 文件类型处理FTP支持四种文件类型:ASCII文件类型、EBCDIC文件类型、IMAGE(图像)文件类型、本地文件类型。ASCII文件类型这是所有FTP执行必须承认的默认类型,主要用于传输文本文件。EBCDIC文件类型这种类型在使用EBCDIC作为内部字符的主机间能提供高效的传输。IMAGE(图像)文件类型数据以连续的位传输,并打包成8位的传输字节。接收站点必须以连续的位存储数据。存储系统的文件结构(或者对于记录结构文件的每个记录)必须填充适当的分隔符,分隔符必须全部为零,填充在文件末尾(或每个记录的末尾),而且必须有识别出填充位的办法,以便接收方把它们分离出去。填充的传输方法应该充分地宣传,使得用户可以在存储站点处理文件。IMAGE 格式用于有效地传送和存储文件和传送二进制数据。本地文件类型用于在具有不同字节长度的主机间传输二进制文件,如果系统的字节长度为8比特,则本地文件类型就相当于图像文件类型。在实际使用中主要以ASCII文件类型和IMAGE(图像)文件类型这两种居多。2.2.2 格式控制ASCII和EBCDIC类型也使用了第二个(可选的)参数:它用于指出纵向格式控制的类型,或者是任何与文件关联的类型。下面的数据表示类型已在FTP中定义:一个字符文件是为了下列三种目的之一传送到远程主机的:为了打印,为了存储和以后信息的检索,或为了处理。如果一个文件为了打印而发送,接收方主机必须知道纵向格式控制是如何表示的。为了第二种目的,必须可以在主机存储文件并且以后检索时要格式正确。最后一种目的,应该可以移动这个文件到其他主机并且可以在第二台主机上处理而没有以外的麻烦。单独的ASCII或EBCDIC格式不能满足所有这些条件。所以,这些类型需要第二个参数指定下列三种格式之一:非打印如果省略掉第二个(格式)参数的话,这是缺省的格式。非打印格式必须被所有的FTP执行者承认。文件不需要包含纵向格式信息。如果它经过一个打印过程,那么该过程将以假定的标准间隔和边距值来处理。通常,该格式用来处理文件或仅仅用来存储。TELNET格式控制文件包含打印过程可以正确解释的ASCII/EBCDIC纵向格式控制(比如,)。,在这个序列里也表示行结束符。托架(走纸)控制(ASA)文件包含ASA (FORTRAN)的纵向控制字符。在有格式的行或记录中,遵照ASA的标准,第一个字符不能打印。它用来限定被打印的记录静止时的走纸量。 很明显,打印过程必须有识别结构实体末尾的方式。如果文件采用了记录结构(见下文)不会有问题,记录可以在传输和存储期间明确地标出。如果文件不是采用记录结构,行结束符用来分隔打印行,但是这些格式控制符超出了ASA的控制。2.2.3 文件结构除了不同的数据表示类型,FTP还允许指定文件的结构。FTP中定义了三种文件结构:1、 文件结构:它没有内部的结构,被认为是数据字节的连续序列。2、 记录结构:文件由连续的记录组成。它必须被所有的FTP实现以“文本”文件(比如,ASCII或EBCDIC类型的文件)的方式承认。3、 页结构:为了传送不连续的文件,FTP定义了一种页结构。这种结构有时候通过其他信息把文件联系成一个整体(比如,一个文件描述符),或者是文件的一部分(比如,页面存取控制)。在FTP里,这些文件的部分成为页。为了提供不同的页大小和关联信息,每个页在传送时附加一个页头。2.2.4 传输模式传输模式用于说明文件是如何在数据连接上惊醒传输的。主要有以下三类。1、 流(stream)模式(默认):流模式将文件当作一个字节流来传输。如果是文件结构,用关闭数据连接表示传输结束;如果是记录结构,用EOR和EOP这两个特殊的字节表示记录结束和文件结束。2、 块(block)模式:块模式将文件当作一系列的数据块来传输,每个数据块前面要有一个或者多个块头字节。表明这个块的标志及内容等。3、 压缩模式:压缩模式用行程常编码对文件进行压缩,由于现在已有更好的方法来压缩文件,因此这种模式已经极少使用。FTP程序并不执行任何的错误检测或者纠错,因为它们要使用TCP端口。底层网络协议应该防止数据错误导致数据混乱的问题。2.3 FTP命令及其响应在控制连接上,FTP命令及其响应都是以NVT ASCCII格式进行传输的,并且每一行用CR和LF作为结束。一般来说,FTP命令是由3到4字节的大些ASCII字符组成,其中有些命令可有参数。FTP命令共有30种,而常用的FTP命令在表2-1中可以看到。 表2-1 一些常用的FTP命令命令说明ABOR中止前一个FTP命令及任何数据传输IIST列文件和目录PASS服务器的密码PORT客户端地址及端口QUIT取消注册RETR从服务器取一个文件STOR发一个文件到服务器上SYST取得系统名称USER用户在服务器中注册用户名PASS用户在服务器中注册密码DELE删除一个文件CDUP改变到父目录一般的FTP响应是以3个ASCII数字作为前导,其后跟相应的消息,其中2-3位数字响应消息由客户程序进行分析处理,后面的消息是提供终端用户阅读的。下面给出一些常见的响应消息:1、 125 数据连接已经打开2、 200 操作命令成功3、 214 帮助消息4、 221 再见5、 257 路径已创建6、 425 不能打开数据连接7、 500 语法错误2.4 连接处理过程数据连接可以完成以下三种功能。1、 客户端用来向服务器发送一个文件。2、 服务器用来向客户端发送一个文件。3、 服务器用来向客户端发送一个文件列表或目录。在客户与服务器的整个连接期间,控制连接必须保持,而数据连接却可以根据请求动态地建立和关闭。在最常用的流模式中,文件结束是用数据连接的关闭来表示的,换句话说,每传输一个文件或文件列表,系统就会在建立一个新的数据连接。许多FTP使用者都有这样的体会,就是网站上一些大型的软件都经过打包,经过打包形成一个文件后,建立的连接就只有一个,将大大加快传输的速度,否则将有大量的时间花在建立连接上。下面是建立一个数据连接的基本流程:1、 客户进程为数据连接选择一个本地的临时端口,并在该临时端口上等待服务器的连接请求。2、 客户进程在控制连接上用PORT命令将临时端口号发送给服务器。3、 服务器受到端口号后,发送一个连接请求,同客户端的该端口建立一个数据连接,服务器端用于数据连接的端口号总是21。4、 数据连接总是由发送文件的一方主动关闭,因为发送方是用关闭连接来表示一个文件传输结束的。为了实现文件传输,用户还要运行专门的FTP客户端程序,比如网际快车就有这方面的功能,其它还有很多专门的FTP传输软件,如:FlashFxp、LeapFTP等,总归各有各的特色。3开发工具及环境介绍现在网上流行的FTP客户端软件有各种个样的版本,GlobalSCAPE公司的CuteFTP Pro,iniCom Networks公司的FlashFXP,朱志雄研发的ChineseFTP等,上诉的这些FTP客户端都是商业级FTP客户端程序,能满足使用者的使用欲望,但是这些都是收费软件,有一定的使用期限不方便。所以我们完全可以根据我们自己学习过的JAVA程序设计以及网络软件设计这两门课程,并且通过JAVA程序设计熟悉了Java语言,自己可以很方便的编写FTP客户端软件。这个FTP客户端软件能为用户提供可视化的图形操作界面,能实现文件的上传下载,登陆账号的保存等大部分的功能。3.1 Java语言概述从第一台数字电子计算机诞生以来,计算机程序设计语言经历了从低级语言到高级语言的巨大发展。随着软件开发技术的不断进步,从面向结构的程序设计思想,到面向对象的程序设计思想,为了适应软件开发的需要,Java作为面向对象程序设计语言的使用变得越来越广泛。Java于1995年诞生,它是由美国加州的升阳计算机公司(Sun Microsystems,Inc.)所推出,是一种能够跨平台使用的程序语言。据说当初在设计Java时,程序设计师们在印度爪哇岛度假,喝Java咖啡时得到灵感,因此得名。3.1.1 Java语言Java 是由Sun公司开发的一种面向对象的程序设计语言。平台无关性是Java的一大特点。所谓平台无关是指编译后的Java程序可直接在不同的平台上运行而不用重新编译,这一特性使得Java随着Web应用的广泛而迅速普及起来。编译后的Java程序以Java字节码形式存在,字节码文件是不能直接在操作系统上执行的,需要通过JVM(Java虚拟机)来运行。因此只要在操作系统中配有JVM,就可以运行编译后的Java程序,也就是“一次编写,随处运行”,因而轻松实现Java跨平台的特点。Java语言吸收了Smalltalk语言和C+语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。主要特性如下:1、 Java语言是简单的。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C+ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。2、 Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C+ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。3、 Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 Server Socket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。4、 Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。5、 Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类Class Loader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类Security Manager)让Java应用设置安全哨兵。6、 Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。7、 Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。8、 Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。9、 Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C+。10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。3.1.2 Java虚拟机大部分的程序语言都必须先经过编译或者解释的操作转换成计算机能读懂的机器语言,这样程序才能在计算机上进行运行,例如C/C+、Basic等都是属于前两者的语言类型。然而,Java程序却比较特殊,它必须先经过编译的程序,然后再利用解释的方式来运行。Java程序通过编译器被转换成与平台无关的的机器码,Java称之为“字节码(byte-codes)” 3。通过Java的解释器便可解释并运行Java的字节码。图3-1说明了Java相关的执行流程:任何一种可以运行Java程序的软件均可看成是Java的“虚拟机”(Java virtual machine,JVM8,一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。它包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。) 2,这个非常重要的特点使的Java最大好处的可跨平台运行。一般的高级语言如果要在不同放入平台上运行,至少要编译成不同的目标代码。而引入Java虚拟机后,Java可以在不同的平台上运行不需要重新编译,只需生成字节码就可以在多平台上直接运行。正是这种跨平台的特性,让Java急速普及,成为现在最流行的程序语言之一。3.1.3 Java开发运行环境介绍常见的Java开发环境包括JDK、JBuilder、Eclipse等。1、 JDK JDK(Java Development Toolkit)是Sun公司开发的Java开发工具包,它是一个简单的命令行工具,主要包括软件库、编译Java源代码的编译器、运行Java字节码的解释器,以及测试Java Applet的Applet阅读器,还有其他一些有用的工具。JDK是一切java应用程序的基础,所有的java应用程序是构建在这个之上的,是必不可少的最基本的工具。JDK主要是通过DOS命令行,在DOS环境下进行Java程序的编译和运行。2、 Borland JBuilder2005JBuilder4是由Borland公司开发的一款功能强大的可视化Java集成开发环境,可以快速开发包括复杂企业级应用系统在内的各种Java程序,包括独立运行程序、Applet程序、Servlet、JSP、EJB、Web Service等。使用这款开发环境能够快速生成程序框架、设计图形界面、调试程序等。本程序以Borland JBuilder 2005为主要开发环境,下面简单介绍一下JBuilder 2005的特点: (1) JBuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB(Enterprise JavaBeans)的应用。 (2) 用户可以自动地生成基于后端数据库表的EJB Java类,Jbuilder同时还简化了EJB的自动部署功能.此外它还支持CORBA,相应的向导程序有助于用户全面地管理IDL(分布应用程序所必需的接口定义语言Interface Definition Language)和控制远程对象。(3) JBuilder支持各种应用服务器。JBuilder与Inprise Application Server紧密集成,同时支持WebLogic Server,支持EJB 1.1和EJB 2.0,可以快速开发J2EE的电子商务应用。(4) JBuilder能用Servlet和JSP开发和调试动态Web 应用。(5) 利用JBuilder可创建(没有专有代码和标记)纯Java2应用。由于JBuilder是用纯Java语言编写的,其代码不含任何专属代码和标记,它支持最新的Java标准。(6) JBuilder拥有专业化的图形调试介面,支持远程调试和多线程调试,调试器支持各种JDK版本,包括J2ME/J2SE/J2EE。3、 Eclipse Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。Eclipse框架的这种灵活性来源于其扩展点。它们是在XML中定义的已知接口,并充当插件的耦合点。扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。 Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。Eclipse联盟已经宣布将在2004年中期发布其3.0版软件。3.2 利用JBuilder2005开发FTP客户端通过对Java开发运行环境的了解,还有更多的Java开发工具。JBuilder2005一直是最受开发者推崇的开发工具。JBuilder2005秉承Borland走在Java技术发展前沿的理念,加入了对多款业界新技术的支持,如Java Server Faces(JSF)、J2EE1.4及JDK5.0,三者皆为开发Java网络应用程序的重要技术。JBuilder2005包含了先进的性能管理功能,并能与当前多款领先的应用服务器结合。而且更重要的是JBuilder环境开发程序的方便,它是纯的Java 开发环境,双向、可视化设计工具使得我们可以快速的构建各种J2EE应用程序,因此JBuilder2005适合我们的这次FTP客户端软件的开发。3.2.1 JBuilder2005工作界面介绍启动JBuilder 20054,进入JBuilder 2005的工作界面,如图3-2所示。JBuilder的主工作界面由菜单栏、工具栏、内容窗口、工程窗口、结构窗口、消息显示窗口、状态栏等组成。图3-2JBuilder 2005工作界面1、 菜单栏:菜单栏包含设计、开发、测试、配置和管理Java应用程序等多个菜单命令,主要由“文件”、“编辑”、“查询”、“视图”、“运行”等12个菜单组成。2、 工具栏:工具栏位于JBuilder工作界面中菜单栏的下方,它以按钮形式提供了与菜单栏中菜单项相同的常用功能按钮,如“文件”、“编辑”、“查询”、“编译”、“运行/调试”、“帮助”等。3、 内容窗口:内容窗口是用户使用最多的地方,可以在内容窗口中打开多个文件,但在同一时刻只有一个文件处于活动状态,可以被编辑。内容窗口下方的文件视图标签用于在内容窗口中切换文件的各种视图,可以从内容窗口中看到处于活动状态的文件的源代码、设计方式、Bean方式、UML视图、文档和历史。4、 工程窗口:工程窗口显示当前处于活动状态的工程的内容,主要包括工具条、已打开工程的列表和包含当前工程所有文件的文件视图。5、 结构窗口:结构窗口显示了当前在内容窗口中处于活动状态的文件的树形结构,内容包括类的所有类变量、方法、利用import语句包含的包和语法错误(如果程序存在语法错误的话)。根据内容窗口的不同文件视图标签的显示内容,在结构窗口将显示不同的文件结构。6、 消息显示窗口:消息显示窗口显示工程的输出结果,如编译信息、查询信息、运行时的提示信息或出错信息、调试器用户界面等内容。7、 状态栏:状态栏显示相关框架的信息和特征以及当前处于活动状态的文件所做的动作。3.2.2 JBuilder2005中FTP库简介在JBuilder2005使用的Java语言中,提供了一类网络类库.ftp.FtpClent5 7,该类库主要提供了用于建立FTP连接的类。利用这些类的方法,编程人员可以远程登录到FTP服务器,列举该服务器上的目录,设置传输协议,以及传送文件。FtpClient类涵盖了几乎所有FTP的功能,FtpClient的实例变量保存了有关建立代理的各种信息。下面给出了这些实例变量。public static boolean useFtpProxy这个变量用于表明FTP传输过程中是否使用了一个代理,因此,它实际上是一个标记,此标记若为TRUE,表明使用了一个代理主机。public static String ftpProxyHost此变量只有在变量useFtpProxy为TRUE时才有效,用于保存代理主机名。public static int ftpProxyPort此变量只有在变量useFtpProxy为TRUE时才有效,用于保存代理主机的端口地址。FtpClient有三种不同形式的构造函数,如下所示:1、public FtpClient(String hostname,int port)此构造函数利用给出的主机名和端口号建立一条FTP连接。2、public FtpClient(String hostname)此构造函数利用给出的主机名建立一条FTP连接,使用默认端口号。3、FtpClient()此构造函数将创建一FtpClient类,但不建立FTP连接。这时,FTP连接可以用openServer方法建立。一旦建立了类FtpClient,就可以用这个类的方法来打开与FTP服务器的连接。类ftpClient提供了如下两个可用于打开与FTP服务器之间的连接的方法。public void openServer(String hostname)这个方法用于建立一条与指定主机上的FTP服务器的连接,使用默认端口号。public void openServer(String host,int port)这个方法用于建立一条与指定主机、指定端口上的FTP服务器的连接。 打开连接之后,接下来的工作是注册到FTP服务器。这时需要利用下面的方法。public void login(String username,String password)此方法利用参数username和password登录到FTP服务器。使用过Intemet的用户应该知道,匿名FTP服务器的登录用户名为anonymous,密码一般用自己的电子邮件地址。下面是FtpClient类所提供的一些控制命令。public void cd(String remoteDirectory)该命令用于把远程系统上的目录切换到参数remoteDirectory所指定的目录。public void cdUp():该命令用于把远程系统上的目录切换到上一级目录。public String pwd():该命令可显示远程系统上的目录状态。public void binary():该命令可把传输格式设置为二进制格式。public void ascii():该命令可把传输协议设置为ASCII码格式。public void rename(String string,String string1)该命令可对远程系统上的目录或者文件进行重命名操作。除了上述方法外,类FtpClient还提供了可用于传递并检索目录清单和文件的若干方法。这些方法返回的是可供读或写的输入、输出流。下面是其中一些主要的方法。public TelnetInputStream list()返回与远程机器上当前目录相对应的输入流。public TelnetInputStream get(String filename)获取远程机器上的文件filename,借助TelnetInputStream把该文件传送到本地。public TelnetOutputStream put(String filename)以写方式打开一输出流,通过这一输出流把文件filename传送到远程计算机。4FTP客户端设计FTP的客户端程序设计主要有五个部分:FTP客户端操作的图形界面设计,客户端登陆程序设计,FTP浏览程序设计,上传和下载程序设计,FTP登陆的帐户参数保存、修改和删除程序设计(简称:帐户信息管理程序)。4.1 FTP系统工作流程与结构通过对上诉的FTP客户端程序设计的五个模块的设计,我们可以得到相应的操作流程为:首先客户端程序先连接服务器;然后浏览或更新FTP服务器目录;选择文件进行下载或者上传;进行文件数据传输;最后断开连接。根据以上的流程,设计用户上传和下载的流程图如图41所示。开始输入登陆信息:主机地址、用户名、端口、密码连接帐户信息管理浏览文件上传下载断开结束图4-1用户上传和下载的流程图注意:在下载文件和上传文件时,其数据流向是不同的;而连接的断开也是由服务器程序执行。图42描述了FTP客户端系统的系统结构(也包含在服务器的部分处理过程),整个系统由图形界面,登陆程序,浏览程序,上传下载程序,帐户信息这五大模块组成。图形界面又由登录程序和文件处程序以及帐户信息界面组成,它主要给用户提供所见即所得的交互手段。FTP帐户信息程序主要对我们的FTP登陆参数进行保存、修改、删除,以方便我们下次重复的输入帐户信息,并把信息反馈于设置界面。登录程序通过用户提供的登录信息(包括FTP服务器IP,服务应用程序端口、用户名(ID)和密码)连接到服务器,并把信息反馈于主界面。浏览程序实现服务器和客户端文件目录的浏览。上传下载程序主要完成文件的传输,是系统的核心模块。 FTP服务器FTP客户端用户登录程序服务器端文件系统浏览程序上传下载程序图形界面服务器端图42文件传输系统的系统结构本地文件系统FTP帐户信息管理与图21比较可以看出在图21中并没有图中的协议解释模块,这是因为JBulider2005提供的FTP控件已经对其进行了类封装,因而对用户而言它是透明的,不必再去编辑解释响应消息等,这就是控件的好处。这样使用JBuilder2005就节约了大量的开发时间。即使对FTP不是很了解,都可以很快的建立起一个FTP客户端程序来。我们通过对FTP客户端下载上传流程图和文件传输系统的系统结构的了解后,下面将分别对整个系统的图形界面、登陆程序、浏览程序、帐户信息程序、上传下载程序的实现细节进行详细的介绍。4.2 系统的图形界面设计系统的图形界面设计包括:FTP主界面的设计、设置界面的设计以及日志界面的设计。其中主界面的设计主要为用户提供FTP客户端与服务器所见即所得的交互接口;设置界面为我们提供了保存FTP站点帐户等重要信息,方便下次再次使用;日志界面,里面主要是显示FTP客户端操作的消息。4.2.1 FTP主界面的设计主体界面主要为用户提供大部分的功能。如图4-3。FTP的登陆栏中,我们输入FTP服务器地址、用户名、密码、端口默认为21,点击“打开”按钮,此时就会连接当FTP服务器上。当连接成功后将FTP服务器目录上的文件罗列在右窗口中,方便我们寻找。也可以点击“收藏”按钮将这些FTP帐户信息保存在设置界面的jList中。在主界面左边的窗口内将实现本地目录的浏览,可以通过点击“打开目录”按钮寻找自己要下载目录或者上传文件目录,也可以通过“打开目录”按钮左边输入栏内将目录地址复制到这个窗口内进行打开。图4-3 主界面当上面两者都实现的时候,我们可以在两个窗口内上传或下载文件。4.2.2 设置界面的设计设置界面主要为我们提供了FTP登陆参数的保存的图形界面。如图4-4。我们都知道,FTP服务器地址参数的重复输入是件很不方便的事情,而且一个FTP服务器也会有各自不同的权限设置,所以在这里就需要我们能够保存FTP登陆参数,以方便我们下次登陆的时候使用。其中FTP服务器地址栏必须填写,其他假如没有填写的话,都会按默认的进行保存,端口会默认为“21”,用户名会默认为“anymouns”,密码为空。图4-4 设置界面4.2.3 操作日志界面的设计操作日志界面为我们提供了操作FTP的操作记录的可查询之处。以方便我们随时查看。如图4-5。 图4-5 操作日志界面4.3 登录程序的设计现在我们来说明一下利用FtpClient控件实现FTP客户端应用程序的登录7功能。要登录FTP服务器,要事先设置下面的FTP帐户信息:1、url:服务器的IP地址或主机名称,为字符串类型;2、port: 服务器的通信端口,为int类型(一般而言,FTP的通信端口默认为21);3、name:用户的登录账号,为字符串类型(一般而言,匿名用户名为anonymous);4、pass:用户的登录密码,为字符串类型;通过键盘对上述内容的输入我们得到了我们所需要的FTP帐户信息,url、name、pass、port。其中url必须输入,所以我们使用url.length()来返回url中字符串长度的长度来判断url中是否有信息输入;帐户信息输入后,我们要先判断FTP客户端是不是已经连接上了FTP服务器,要是没有则直接连接,若有则先将已经连接上的FTP服务器断开,在进行连接;现在我们使用openServer方法来打开服务器端口,然后使用login方法来登录,并进行用户认证。为了能更好的监督FTP的登陆情况,我们将FTP的成功连接到FTP服务器上的消息显示在jTextArea中,当帐户信息没有输入或者连接失败后能够跳出提示框显示要求用户输入帐户信息或FTP客户端未能连接成功。根据以上的流程,FTP客户端登陆FTP服务器流程如图4-6所示。NY开始跳出窗口:请输入FTP帐户信息判断有无输入FTP地址、用户名、密码判断有无连接FTP服务器判断输入的FTP帐户信息能否连接关闭已连接的FTP跳出窗口:无法连接FTP服务器连接成功YYNN图4-6 FTP客户端登陆FTP服务器的流程以下给出示例程序的关键源代码:If(!(url. length()JOptionPane.showMessageDialog(this,请输入FTP服务器地址);Return;if(ftp!=null)ftp.closeSer
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年验船师考试(C级船舶检验专业实务)综合试题及答案一
- 北京市门头沟区2024-2025学年八年级上学期第一次月考地理试题及答案
- 北京市门头沟区2023-2024学年九年级下学期中考适应性训练(三模)道德与法制试题含参考答案
- 2025年高级无人机植保操作员实操模拟题与理论知识点解析
- 2026届漯河市重点中学化学高一上期中统考模拟试题含解析
- 公务员英雄面试题及答案
- 2025年项目管理办公室专员招聘考试模拟题
- 江苏泰兴一中2026届化学高三第一学期期末综合测试模拟试题含解析
- 2026届新疆乌鲁木齐市高二化学第一学期期中检测试题含解析
- 2025年法律顾问招聘面试预测题与法律实务经验
- 居家办公免责协议书
- 河南郑州航空港发展投资集团有限公司招聘笔试真题2024
- 高中语文课程标准深度解读
- 硬件设备自动测试软件系统架构的理论分析与设计
- 制冷系统事故应急预案
- 紧急状态下护理人员调配制度
- 牛的品种-培训课件
- 未缴纳社保劳动仲裁申请书范本
- 油田安全生产管理培训课件
- 《你的形象价值百万》课件
- 设备缺陷月度分析报告
评论
0/150
提交评论