【发布时间】:2016-05-31 19:53:19
【问题描述】:
我尝试使用 Apache 公共库中的 FTP 连接到远程服务器。但我无法连接到此服务器..我遇到了异常:
java.net.ConnectException:连接超时:连接 在 java.net.DualStackPlainSocketImpl.connect0(本机方法) 在 java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 java.net.Socket.connect(Socket.java:589) 在 org.apache.commons.net.SocketClient.connect(SocketClient.java:188) 在 org.apache.commons.net.SocketClient.connect(SocketClient.java:209) 在 de.download.Info4c.start(Info4c.java:95) 在 de.download.Info4c.main(Info4c.java:67)
这是我的代码:
FTPSClient client = new FTPSClient(false);
client.connect("<IP>",990);
int reply = client.getReplyCode();
if (FTPReply.isPositiveCompletion(reply)) {
if(client.login(user, pass)){
// Set protection buffer size
client.execPBSZ(0);
// Set data channel protection to private
client.execPROT("P");
// Enter local passive mode
client.enterLocalPassiveMode();
}
}
【问题讨论】:
-
应该替换为您尝试连接的服务器的地址。您是为了发布问题而自己掩盖了它,还是实际上“ ”是您在程序中使用的? -
@Neil
标签包含我的远程服务器 IP。我没有任何名字,只有 IP,所以在我要连接的服务器上运行的是 windows server 2012,它只是一个远程服务器。 -
尝试使用
ping <IP>测试服务器是否存在总是一个好主意。如果它响应,请按照@duffymo 的建议检查端口。否则,您的问题是从您的 PC 上看不到该服务器。这并不一定意味着服务器关闭!可能是防火墙或其他因素。 -
尝试添加运行属性
-Djava.net.preferIPv4Stack=true -
@user3515460:检查现有的 ftps 客户端应用程序,您可以访问 ftps 服务器。也许它被防火墙阻止了,或者它没有在服务器上运行。
标签: java