⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server-2.txt

📁 实现ftp代理服务器的基本功能
💻 TXT
字号:
前面讨论了基本的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服务器负担不会过重。

(待续)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -