在Java Connect中使用FTP连接设置超时

时间:2013-03-27 09:29:52

标签: java ftp

我尝试使用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秒。有没有办法改变这个?

谢谢,

1 个答案:

答案 0 :(得分:0)

setTimeout方法记录为:

Set the SO_TIMEOUT in milliseconds on the underlying socket.

这样它只影响低级套接字操作。问题是 - 你期望发生什么样的超时?

连接?转学期间?闲置?

如果你连接到例如对于未知主机,您甚至可以在超时被考虑之前占用大部分时间进行DNS查找。