Java 我应该如何在FTP服务器中处理LIST命令?

Java 我应该如何在FTP服务器中处理LIST命令?,java,ftp,ftp-server,Java,Ftp,Ftp Server,我正在用Java编写一个FTP服务器,现在我想回答LIST命令。只发送文件名就足够了,而且我不需要发送文件大小、所有者、权限等。似乎只发送一些字符串作为文件名并不能满足客户端的要求(我尝试了ASCII和二进制格式)。我怎样才能知道FTP客户端希望得到什么样的回复 我正在使用和测试我的服务器。查看的标准位置是相关的RFC: 不幸的是,在这种情况下,RFC非常模糊: Since the information on a file may vary widely from system

我正在用Java编写一个FTP服务器,现在我想回答LIST命令。只发送文件名就足够了,而且我不需要发送文件大小、所有者、权限等。似乎只发送一些字符串作为文件名并不能满足客户端的要求(我尝试了ASCII和二进制格式)。我怎样才能知道FTP客户端希望得到什么样的回复


我正在使用和测试我的服务器。查看的标准位置是相关的RFC:

不幸的是,在这种情况下,RFC非常模糊:

        Since the information on a file may vary widely from system
        to system, this information may be hard to use automatically
        in a program, but may be quite useful to a human user.

为了确保与现有FTP客户端兼容,您最好查看一些广泛部署的FTP服务器软件并模拟其输出格式。

查看的标准位置是相关的RFC:

不幸的是,在这种情况下,RFC非常模糊:

        Since the information on a file may vary widely from system
        to system, this information may be hard to use automatically
        in a program, but may be quite useful to a human user.

为了确保与现有FTP客户端的兼容性,最好的办法是查看一些广泛部署的FTP服务器软件并模拟其输出格式。

如果要创建兼容的FTP服务器,则需要处理LIST和NLST(标准命令)以及MLST和MLSD扩展命令

列表命令的格式在任何地方都没有定义,世界上大约有400种格式。使用Unix ls格式或Windows DIR格式将适用于大多数客户机,因为这些格式非常广泛,并且受到客户机的良好支持

NLST仅是文件名列表


MLST和MLSD使用RFC 3659中描述的机器可解析格式(这是M字母的代表)。它更容易为客户处理,它的支持是非常受欢迎的

如果要创建兼容的FTP服务器,则需要处理LIST和NLST(标准命令)以及MLST和MLSD扩展命令

列表命令的格式在任何地方都没有定义,世界上大约有400种格式。使用Unix ls格式或Windows DIR格式将适用于大多数客户机,因为这些格式非常广泛,并且受到客户机的良好支持

NLST仅是文件名列表


MLST和MLSD使用RFC 3659中描述的机器可解析格式(这是M字母的代表)。它更容易为客户处理,它的支持是非常受欢迎的

在RFC中只阅读一段关于LIST命令的内容如何?如果您希望为不同的程序提供特定的支持,那么您必须阅读他们的文档,但我怀疑他们希望列表命令具有特定的格式-这不会太好。我在RFC中找不到任何关于列表响应标准的内容。因此,您的搜索键已损坏或您没有搜索。。否则,第一次搜索“列表”将在P32上显示一个漂亮整洁的段落,正如我在问题中所说,我发送了文件名,后跟
\r\n
,但客户端没有显示任何内容。它在linux中使用ftp命令,但在FireFTP和FileZilla中不起作用。改为只阅读RFC中有关LIST命令的一段内容如何?如果您希望为不同的程序提供特定的支持,那么您必须阅读他们的文档,但我怀疑他们希望列表命令具有特定的格式-这不会太好。我在RFC中找不到任何关于列表响应标准的内容。因此,您的搜索键已损坏或您没有搜索。。否则,第一次搜索“列表”将在P32上显示一个漂亮整洁的段落,正如我在问题中所说,我发送了文件名,后面跟着
\r\n
,但是客户端没有显示任何内容。它在linux中与ftp命令一起工作,但与FireFTP和FileZilla不一起。谢谢。现在关于列表,我可以在哪里找到FireFTP或FileZilla的特定格式?我如何让客户端发送MLSTPedram客户机通常理解很多格式,而且他们都理解常见的Unix ls格式。所以,如果您坚持使用unix格式,几乎可以保证在客户端获得积极的结果。关于MLST/MLSD-我们的客户支持常规列表中的MLSD,因此如果支持MLSD,将使用它。不过,这取决于客户端。谢谢。关于列表,我在哪里可以找到FireFTP或Filezilla的特定格式?以及如何使客户端发送MLST而不是列表?以FEAT-Response发送就足够了吗?@Pedram客户端通常了解很多格式,并且他们都了解常见的Unix ls格式。所以,如果您坚持使用unix格式,几乎可以保证在客户端获得积极的结果。关于MLST/MLSD-我们的客户支持常规列表中的MLSD,因此如果支持MLSD,将使用它。但这取决于客户端。