gpt4 book ai didi

java - Java中的简单FTP客户端可以在被动模式下仅发送一次 "list"命令

转载 作者:行者123 更新时间:2023-12-01 15:40:26 25 4
gpt4 key购买 nike

关于用 Java 编写的简单 FTP 客户端和 proFTP 服务器之间的 FTP session ,我仍然存在一些问题。

我已使用被动模式连接到服务器。当我发送 list 命令时,我会收到服务器上哪些文件的 ASCII 响应。如果我再次发送 list 命令,我不会收到任何响应。我什至无法从我发送的其他 FTP 命令中得到响应。 session 似乎“挂起”。

为什么我的简单 Java 应用程序在第二次发送 list 命令时停止获取回复?

最佳答案

在 FTP 中,主动和被动模式都提供单独的数据传输 channel 。每当您想要以被动模式发送涉及发送数据(例如 list)的命令时,您必须重新发送 PASV 来告诉服务器您正在执行涉及数据连接的操作。然后服务器可以打开一个新的套接字或继续使用相同的套接字。

这是一个示例 session :

230 Login successful.
PASV
227 Entered Passive Mode (123,245,209,137,199,61)
LIST
150 Here comes the directory listing.
226 Directory send OK.
LIST
425 Use PORT or PASV first.
PASV
227 Entered Passive Mode (123,245,209,137,202,198)
LIST
150 Here comes the directory listing.
226 Directory send OK.

请注意,我第二次尝试使用 LIST 失败了,因为我没有打开数据通道。当我发送另一个 PASV 后,我就可以再次使用 LIST

关于java - Java中的简单FTP客户端可以在被动模式下仅发送一次 "list"命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com