gpt4 book ai didi

java - 从头开始构建 FTP 客户端 : Error "425 Can' t open data connection for transfer"

转载 作者:行者123 更新时间:2023-12-01 13:00:24 25 4
gpt4 key购买 nike

我正在尝试用 Java 从头开始​​制作一个 FTP 客户端。

我使用 Filezilla 作为服务器,并且可以在一定程度上连接到它。我的意思是我的命令端口正在工作,但无论我如何搜索,我都无法连接数据端口。

我查找过的所有网站都说问题与防火墙和/或路由器有关,但是,当我尝试使用 Filezilla 客户端连接到服务器时,一切都很顺利。

到目前为止我所拥有的:

    serverSocket = new ServerSocket(20);
socket = new Socket(127.0.0.1, 21);
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

writer.write("USER " + Anonymous + "\n");
writer.flush();
writer.write("PASS " + "" + "\n");
writer.flush();
writer.write("PORT 127,0,0,1,0,14");
writer.flush();
writer.write("EPRT |1|127.0.0.1|20|");
writer.flush()
dataSocket = serverSocket.accept();

这让我登录到服务器并断开连接。为了解决这个问题,我在线程内添加了一个无限 while 循环(暂时),直到我可以连接到数据端口。

最佳答案

当您对(可能是)数据套接字 socket2 进行接受时,您不会告诉服务器在哪里可以找到该套接字,例如您之前没有发出 PORTEPRT 命令。在尝试实现协议(protocol)之前,请深入研究协议(protocol)文档(主要是 RFC959)。

关于java - 从头开始构建 FTP 客户端 : Error "425 Can' t open data connection for transfer",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23555913/

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