苏州北大青鸟|电脑人才培训中心『官方网站』

高中生毕业了做什么?高中生学什么好 苏州北大青鸟、苏州北大青鸟学费、苏州北大青鸟地址
ACCP7.0培训-入手最快 JAVA培训—收入最高 .NET培训—就业面最宽 网络营销培训—需求量最大
高中毕业学什么好 大学生找不到工作怎么办 学什么技术有前途(好转行) 初中(中专)毕业学什么好
当前位置: 主页 > 青鸟百科 >

JAVA文件传输系统设计

时间:2012-05-28 16:58来源: 作者: 点击:

 

FTPFile Transfer Protocol)是文件传输协议的简称。 FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。

目前FTP服务器软件都为国外作品,例如Server_UIIS,国内成熟的FTP服务器软件很少,有一些如(Crob FTP Server),但从功能上看来远不能和那些流行的服务器软件媲美。

下面对这些软件简单的做一个比较:

IIS只适用于NT/2000/XPWindows操作系统,适合建个小型的同时在线用户数不超过10个的FTP服务器。它对账户的管理按照Windows用户账户方式进行  

比起IIS来,Server_U的管理功能强大得多,而且设置也很方便。它是一款由Rob Beckers开发的获奖的FTP服务器软件,它功能强大又易于使用,支持 9x/ME/NT/2K 等全Windows系列。FTP服务器用户通过它用FTP协议能在internet上共享文件。Serv-U不仅100%遵从通用FTP标准,也包括众多的独特功能可为每个用户提供文件共享完美解决方案。它并不是简单地提供文件的下载,还为用户的系统安全提供了相当全面的保护。例如:您可以为您的 FTP 设置密码、设置各种用户级的访问许可等等;

Crob FTP Server从功能设置上可以看出,它沿用了像Server_U等主流FTP服务器软件的基本设置;并加入了不少人性化的功能;同时支持多服务器。(即在软件中可以在任意的有效端口上建立任意多的FTP服务器并可同时运行,各服务器间互不相干的稳定运行)应该说进步是非常大的。并且可以应用于Windows 95/98/ME/me/N/T2000及最新的.NET操作系统上

不过,纵观上面这些软件,它们都只能在Windows操作系统中运行,并且功能过于强大,许多功能应用于我们的考试系统的话,并没有太大的意义,而且有些也没必要,于是就需要一个专用的,而且也能通用(应用于UNIX等其他的 操作系统)的FTP服务器。要求实习一些基本功能:文件上传;文件下载;文件列表和存在检查、文件属性查询。

基于以上的要求,可以说在选择开发语言的时候,无疑我选择了JAVA语言。众所周知,JAVA是一种可以编写跨平台应用软件的面向对象的程序设计语言Java编程语言的风格十分接近C++语言。Java继承了C++语言面向对象技术的核心,舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载、多重继承(以接口取代)等成分,增加了自动垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。Java最初是为嵌入式小设备而设计的。起初 ,它为人们所喜爱的原因是由于可以用它来开发复杂的、以Applet为形式的客户端Web应用。然而,服务器端JAVA的应用的兴起才是JAVA编程最令人振奋的趋势。Java本质上适合开发大型客户机/服务器(Client/Server)应用。其跨平台、面向对象、内存保护的安全性、内在的对网络编程的支持以及丰富的API等特性使JAVA成为服务器端应用开发的一种理想语言。之所以选择JAVA语言,还有个重要的原因就是本人的个人所好。

在选择开发平台方面,JCreatoreclipseJbuilder等都是不错的选择,由于个人喜好我选择了Jbuilder作为我的开发平台,而在版本的选择上我选的是Jbuilder 2005

通过阅读大量的文献质料,我发现用JAVA来开发FTP服务器还是具有一定的难度,主要是由于它不像开发FTP客户端的程序那样(Jbuilder中提供了一类网络类库sun.net.ftp.FtpClient.,该类库主要提供了用于建立FTP连接的类。利用这些类的方法,编程人员可以远程登录到FTP服务器,列举该服务器上的目录,设置传输协议,以及传送文件。FtpClient类涵盖了几乎所有FTP的功能,FtpClient的实例变量保存了有关建立。),在Jbuilder中并没有像FtpClient类这样的,来提供给用于服务器端编程的类,所以我们只能从FTP的工作原理入手,来解决服务器端的程序编写问题。经过分析,大体思路如下:

在主函数中建立一个服务器套接字端口,等待客户端请求,一旦客户端请求被接受,服务器程序就建立一个服务器分线程,处理客户端的命令。如果客户端需要和服务器端进行文件的传输,则建立一个新的套接字连接来完成文件的操作。

在主函数中,完成服务器端口的侦听和服务线程的创建。线程类的主要设计都是在run()方法中实现。用run()方法得到客户端的套接字信息,根据套接字得到输入流和输出流,向客户端发送欢迎信息。在文件传输方面,主要处理从服务器中获得文件RETR和向服务器中发送文件STOR,这两个命令的处理非常类似。处理RETR命令时,首先得到用户要获得的文件的名称,根据名称创建一个文件输入流,然后和客户端建立临时套接字连接,并得到一个输出流。随后,将文件输入流中的数据读出并借助于套接字输出流发送到客户端,传输完毕以后,关闭流和临时套接字;STOR 命令的处理也是同样的过程,只是方向正好相反。

当然,这只是大体的思路,具体的实现还涉及到许多细节上的问题了,从理论上来讲,利用JAVA来开发FTP服务器是可行的,也基本能完成我们预先所要达到的目标,实现一些基本功能,不过在检查文件的属性这方面还有待查找更多相关的质料。


 


标签:

(原文标题:JAVA文件传输系统设计

(责任编辑:苏州北大青鸟



相关新闻

  • JAVA文件传输系统设计
    更多
    分享按钮
    ------分隔线----------------------------
    招生专题