【问题标题】:`500 Command not understood.` from windows IIS FTP server on sending USER command using Java在使用 Java 发送 USER 命令时,来自 Windows IIS FTP 服务器的“500 命令不理解”
【发布时间】:2018-04-03 21:51:55
【问题描述】:

这是我第一次编写标准化协议客户端,请多多包涵。

我正在尝试向 ftp 服务器发送 USER 命令,但我不断收到 500 Command not understood. 作为响应。

这是我的发送功能:

private static String SendToServer(PrintWriter server_output, BufferedReader server_input, String message)
{
    String server_response = null;
    try {
        server_output.println(message);
        server_response = server_input.readLine();
        if (server_response == null) {
            System.err.println("Error #2: Lost connection");
            return "";
        }
    }
    catch (IOException e)
    {
        System.err.println("Error #9999: Unexpected exception: "+ e.getMessage());
    }
    System.out.println("# " + server_response);

    return server_response.toString();
}

我是这样调用函数的:

SendToServer(server_out, server_in, ""); //An empty command tries to establish a connection
SendToServer(server_out, server_in, "USER anonymous"); //Tries to "log in" anonymously

这是输出:

# 220 Microsoft FTP Service
# 500 Command not understood.

问题是:为什么我会收到 500 Command not understood. 回复?

编辑:我尽可能多地做大学作业,我不能使用任何现有的 ftp 库

【问题讨论】:

  • 您是否有理由要手动编写代码?有很多知名的 FTP 客户端库,例如 Apache Commons FTPClient
  • 您的代码似乎没问题。您可以尝试两件事:1)在println() 调用之后刷新PrintWriter 和2)尝试在命令提示符/shell 中使用相同的命令连接到服务器。在 Windows 中,您可以使用ftp -n <host>。这是为了确保它不是服务器端问题。
  • 我不明白您为什么认为“一条空消息试图建立连接”?您实际上发送的是空消息。所以很可能 500 错误消息是对空消息的响应,而不是对 USER 命令的响应。
  • @MartinPrikryl 编辑:抱歉,做了更多测试,你是对的。谢谢! 旧回复: ftp 的工作方式是任何第一条消息都会建立 TCP 连接,或者更准确地说 - 服务器返回 220 就绪 回复。如果我首先发送 USER 命令,它只会将其解释为尝试连接并返回 220 忽略我发送的任何命令字符串。 (至少这是测试和我的业余理解向我展示的)
  • 空消息不会“尝试建立连接”。它甚至没有发送。不清楚你在问什么。

标签: java ftp


【解决方案1】:

感谢@MartinPrikryl 的帮助!

第一个回复220 Microsoft FTP Service其实是在创建socket之后收到的。

500 Command not understood. 是对我发送的空字符串的响应。

编辑:500 Command not understood. 是对我发送的“\n”字符串的响应。 "\n" 是在server_output.println(message); 调用中使用println 生成的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多