服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

用java构建稳定的ftp服务器 (2)

前面讨论了基本的ftp协议和会话,下面我们用java来开发一个简单的ftp服务器。

为了简单起见,我们只设计两个类:一个ftpserver类用于监听,一个ftpconnection类代表一个用户连接,每个连接都使用一个线程。

ftpserver负责初始化serversocket并监听用户连接,它接受一个参数来初始化ftp服务器的根目录:

package jftp;
import java.net.*;

public class ftpserver extends thread {
    public static final int ftp_port = 21; // default port
    serversocket ftpsocket = null;

    public static void main(string[] args) {
        if(args.length!=1) {
            system.out.println("usage:");
            system.out.println("java ftpserver [root dir]");
            system.out.println("nexample:");
            system.out.println(
"java ftpserver c://ftp//");
            return;
        }
        ftpconnection.root = args[0];
        system.out.println("[info] ftp server root: " + ftpconnection.root);
        new ftpserver().start();
    }

    public void run() {
        socket client = null;
        try {
            ftpsocket = new serversocket(ftp_port);
            system.out.println("[info] listening port: " + ftp_port);
            for(;;) {
                client = ftpsocket.accept();
                new ftpconnection(client).start();
            }
        }
        catch(exception e) { e.printstacktrace(); }
    }
}

每当有一个客户连接,就创建一个新的ftpconnection线程以便为用户服务,你可以很方便地限制最大连接数以确保ftp服务器负担不会过重。

(待续)

扫描关注微信公众号