使用 Java FTP 连接到本地主机

Connect to Localhost with Java FTP

我正在 JAVA 上开发 FTP 程序。我正在使用 Apache Commons Net Library。我的代码如下。

import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
public class ServerClass {
    private static void showServerReply(FTPClient ftpClient) {
        String[] replies = ftpClient.getReplyStrings();
        if (replies != null && replies.length > 0) {
            for (String aReply : replies) {
                System.out.println("SERVER: " + aReply);
            }
        }
    }
    public static void main(String[] args) {
        String server = "127.0.0.1";
        int port = 80;
        String user = "root";
        String pass = "root";
        FTPClient ftpClient = new FTPClient();
        try {
            ftpClient.connect(server, port);
            showServerReply(ftpClient);
            int replyCode = ftpClient.getReplyCode();
            if (!FTPReply.isPositiveCompletion(replyCode)) {
                System.out.println("Operation failed. Server reply code: " + replyCode);
                return;
            }
            boolean success = ftpClient.login(user, pass);
            showServerReply(ftpClient);
            if (!success) {
                System.out.println("Could not login to the server");
                return;
            } else {
                System.out.println("LOGGED IN SERVER");
            }
        } catch (IOException ex) {
            System.out.println("Oops! Something wrong happened");
            ex.printStackTrace();
        }
    }
}

但是我无法连接我的本地主机。我想登录我的本地主机并查看我的文件。 我的错误如下。

Oops! Something wrong happened
java.net.ConnectException: Connection refused: connect
 at java.net.DualStackPlainSocketImpl.connect0(Native Method)
 at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
 at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
 at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
 at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
 at java.net.PlainSocketImpl.connect(Unknown Source)
 at java.net.SocksSocketImpl.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at org.apache.commons.net.SocketClient.connect(SocketClient.java:188)
 at org.apache.commons.net.SocketClient.connect(SocketClient.java:209)
 at com.emrecanoztas.ftp.ServerClass.main(ServerClass.java:22)

你能帮帮我吗?谢谢!..

问题:

  • 是否有 FTP 服务器 运行?
  • FTP 服务器日志中是否有关于连接请求的消息?
  • FTP 服务器是否允许来自本地主机的连接?
  • FTP 服务器是在本地主机上侦听还是应该使用计算机的 public IP/name? (使用 netstat 检查)

试试下面的设置。

        String server = "ftp.icm.edu.pl";
        int port = 21;
        String user = "anonymous";
        String pass = "me@nowhere.com";