Я работаю над приложением Android (Java 8, apache .commons. net .ftp 3.6, Min: API 24 / target: API 27), которое подключается к FTP-серверу, но я У меня странная проблема:
Если я подключаюсь к одному из тестовых серверов publi c (например, speedtest.tele2.net
) или напрямую к IP-адресу (например, 10.1.1.123
), он работает нормально.
Если я специально добавляю опечатку в «нормальный» адрес (например, sspeedtest.tele2.net
), я получаю ожидаемое java.net.UnknownHostException
, но если я добавлю опечатку в IP-адрес, независимо от того, находится ли он в той же сети или нет (например, 10.1.1.223
), больше ничего не происходит - без исключений, без ошибок, без результатов, даже по истечении установленного времени ожидания.
Код:
FTPClient f = new FTPClient();
f.setDefaultTimeout(5000); //5 seconds
try {
f.connect(url,port);
boolean b = f.login(username,password);
Log.d(TAG,"logged in="+b+", connected="+f.isConnected());
} catch (IOException e) {
e.printStackTrace();
}
Я позволю он работал немного дольше и, наконец, через 1 минуту и 16 секунд было сгенерировано исключение:
W/System.err: java.net.ConnectException: Connection refused
Я пробовал это несколько раз, и, кажется, исключение всегда выдается после 1: 16.
Как сделать так, чтобы тайм-аут тоже соблюдался? Я должен использовать другой?