当前位置:七道奇文章资讯编程技术Java编程
日期:2011-01-26 02:54:00  来源:本站整理

<b>若何用Java实现FTP服务器</b>[Java编程]

赞助商链接



  本文“<b>若何用Java实现FTP服务器</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

    FTP(File Transfer Protocol 文件传输协议)是Internet 上用来传送文件的协议.在Internet上通过FTP 服务器可以举行文件的上传(Upload)或下载(Download).FTP是及时联机服务,在利用它之前必须是具有该服务的一个用户(用户名和口令),工作时客户端必须先登录到作为服务器一方的计算机上,用户登录后可以举行文件搜索和文件传送等有关操作,如改变当前工作目录、列文件目录、设置传输参数及传送文件等.利用FTP可以传送全部范例的文件,如文本文件、二进制可履行文件、图象文件、声音文件和数据压缩文件等.

    FTP 号令

    FTP 的主要操作都是基于各种号令底子之上的.常用的号令有:

    ◆ 设置传输情势,它包含ASCⅡ(文本) 和BINARY 二进制情势;

    ◆ 目录操作,改变或显示远程计算机的当前目录(cd、dir/ls 号令);

    ◆ 衔接操作,open号令用于成立同远程计算机的衔接;close号令用于关闭衔接;

    ◆ 发送操作,put号令用于传送文件到远程计算机;mput 号令用于传送多个文件到远程计算机;

    ◆ 获得操作,get号令用于接纳一个文件;mget号令用于接纳多个文件.

    编程思绪

    按照FTP 的工作原理,在主函数中成立一个服务器套接字端口,等候客户端恳求,一旦客户端恳求被承受,服务器程序就成立一个服务器分线程,处理客户端的号令.假如客户端需求和服务器端举行文件的传输,则成立一个新的套接字衔接来完成文件的操作.

    编程本领阐明

    1.主函数计划

    在主函数中,完成服务器端口的侦听和服务线程的成立.我们操纵一个静态字符串变量initDir 来保存服务器线程运行时所在的工作目录.服务器的初始工作目录是由程序运行时用户输入的,缺省为C盘的根目录.

    具体的代码以下:

public class ftpServer extends Thread{
private Socket socketClient;
private int counter;
private static String initDir;
public static void main(String[] args){
if(args.length != 0) {
initDir = args[0];
}else{ initDir = "c:";}
int i = 1;
try{
System.out.println("ftp server started!");
//监听21号端口
ServerSocket s = new ServerSocket(21);
for(;;){
//承受客户端恳求
Socket incoming = s.accept();
//成立服务线程
new ftpServer(incoming,i).start();
i++;
}
}catch(Exception e){}
}

    2. 线程类的计划

    线程类的主要计划都是在run()办法中实现.用run()办法得到客户端的套接字信息,按照套接字得到输入流和输出流,向客户端发送欢送信息.

    3. FTP号令的处理

    (1) 拜候掌握号令

    ◆ user name(user) 和 password (pass) 号令处理代码以下:

if(str.startsWith("USER")){
user = str.substring(4);
user = user.trim();
out.println("331 Password");}
if(str.startsWith("PASS"))
out.println("230 User "+user+" logged in.");

    User 号令和 Password 号令辨别用来提交客户端用户输入的用户名和口令.

    ◆ CWD (CHANGE WORKING DIRECTORY) 号令处理代码以下:

if(str.startsWith("CWD")){
String str1 = str.substring(3);
dir = dir+"/"+str1.trim();
out.println("250 CWD command succesful");
}

    该号令改变工作目录到用户指定的目录.

    ◆ CDUP (CHANGE TO PARENT DIRECTORY) 号令处理代码以下:

if(str.startsWith("CDUP")){
int n = dir.lastIndexOf("/");
dir = dir.substring(0,n);
out.println("250 CWD command succesful");
}

    该号令改变当前目录为上一层目录.

    ◆ QUIT号令处理代码以下:

if(str.startsWith("QUIT")) {
out.println("GOOD BYE");
done = true;
}

    该号令退出及关闭与服务器的衔接,输出GOOD BYE.


  以上是“<b>若何用Java实现FTP服务器</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .