【问题标题】:Connect to Localhost with Java FTP使用 Java FTP 连接到本地主机
【发布时间】:2016-04-11 15:59:46
【问题描述】:

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

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)

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

【问题讨论】:

  • 1.您使用默认为 http 的 tcp 端口 80。
  • 2.你在本地运行 ftp 服务器吗?
  • 是的,我正在使用 XAMPP,所以有一个 localhost 并且正在运行
  • 默认情况下 ftp 服务器运行在端口 21。也许在设置端口变量时尝试将 21 更改为 80。
  • 不,我尝试了端口 21,但它不起作用:(

标签: java ftp connection localhost


【解决方案1】:

问题:

  • 是否有 FTP 服务器正在运行?
  • FTP 服务器日志中是否有关于连接请求的消息?
  • FTP 服务器是否允许来自本地主机的连接?
  • FTP 服务器是在 localhost 上侦听,还是应该使用计算机的公共 IP/名称? (与 netstat 核对)

【讨论】:

  • 我的电脑上没有任何 FTP 服务器。我只想连接我的本地主机。有可能吗?或者我需要安装 FTP 服务器?
  • 不,如果没有 FTP 服务器,您的代码将无法工作。不过,您可以尝试其他一些服务器。尝试端口 = 21 ;服务器="ftp.icm.edu.pl";用户=“匿名”; pass="me@nowhere.com";
  • 当然,您需要提供一个有效的服务器来连接。否则程序不会得到响应。这就像将一封信投递到一个不存在的地址。
【解决方案2】:

试试下面的设置。

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

【讨论】:

  • 有一个 FTP 服务器正在运行。 :D
猜你喜欢
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 2012-10-18
相关资源
最近更新 更多