仍然没有答案。感谢您提供任何帮助!
我正在使用 Apache Commons-Net3.1 并尝试让 FTPS 正常工作。当我尝试连接时,我在控制台中收到以下错误:
---编辑:代码和错误已更新---
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:171)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:192)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:285)
我确定我只是没有正确设置它。这是我的代码。在正确方向上的任何一点将不胜感激。 (顺便说一句,我正在尝试通过端口 990 进行连接)。 “client.connect(ftpHost);”行的代码错误
import org.apache.commons.net.ftp.FTPSClient;
import java.io.IOException;
import java.io.FileOutputStream;
public class MyFTP {
public void downloadFTP(){
FTPSClient client = new FTPSClient(false);
FileOutputStream fos = null;
client.setTrustManager(TrustManagerUtils.getAcceptAllTrustManager());
try {
client.connect(ftpHost);
client.enterLocalPassiveMode();
client.login(ftpUser, ftpPassword);
String filename = "liveGUIfile.txt";
fos = new FileOutputStream(filename);
client.retrieveFile("/root/Desktop/" + filename, fos);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null) {
fos.close();
}
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
最佳答案
FTPS 可以是显式的也可以是隐式的,你使用显式:
FTPSClient client = new FTPSClient(false);
但显式通常使用 21 端口,如 FTP,而隐式使用 990 端口。所以尝试连接到 21 端口或使用 new FTPSClient(true)
关于Java FTPS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11245335/