通过apache FTP客户端连接到ftp服务器时,我陷入了困境。我在那里找到了很多程序,但无法通过以下代码连接到我的ftp服务器。
FTPClient ftpClient = new FTPClient();
ftpClient.connect("169.144.76.33");
ftpClient.login("root", "re123set");
Exception:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:176)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:268)
但是,每当我尝试通过ip,用户名,密码,端口(没有端口无法连接)通过文件zilla连接时。我能够连接到ftp服务器。
因此,请帮助我解决问题。
最佳答案
基于您需要在Filezilla中输入端口(默认为FTP端口21
)的事实,我认为您没有向FTPClient
提供一些信息:
1)端口号(假设它与默认的21
不同)。要连接到非默认端口,请使用带有两个参数的Connect
重载:
public void connect(String hostname, int port)
2)您可能正在使用隐式SSL / TLS加密,FileZilla(但不是
FTPClient
)可以从端口号990
假定什么3)您实际上想使用SFTP(基于您问题的
sftp
标记)。 FTPClient
不支持SFTP协议,它与FTP完全不同。见How to retrieve a file from a server via SFTP?