我尝试使用com.enterprisedt.net.ftp.FTPClient在FTP Connect 上设置超时但由于某种原因无法使其正常工作。
这是我的代码:
public boolean testFtpDetails(String path) {
boolean success = false;
try {
FTPClient ftp = new FTPClient();
ftp.setRemoteHost("210.160.1.100");
ftp.setTimeout(3000);
ftp.connect();
ftp.login("test", "test");
success = ftp.connected();
if (success && path != null) {
ftp.chdir(path);
}
ftp.quit();
} catch (UnknownHostException e) {
} catch (IOException e) {
} catch (FTPException e) {
}
因此,在尝试执行ftp.connect()3秒后,我希望它会超时。但是这不会发生,超时大约需要15秒。有没有办法改变这个?
谢谢,
答案 0 :(得分:0)
setTimeout方法记录为:
Set the SO_TIMEOUT in milliseconds on the underlying socket.
这样它只影响低级套接字操作。问题是 - 你期望发生什么样的超时?
连接?转学期间?闲置?
如果你连接到例如对于未知主机,您甚至可以在超时被考虑之前占用大部分时间进行DNS查找。