У меня есть приложение Java, которое подключается к другому компьютеру, на котором работает FTP-сервер Filezilla.Я заметил, что после некоторого количества соединений, если я закрываю и пытаюсь снова открыть свое клиентское приложение FTP, я начинаю зависать на части соединения.Я вижу исключение, говорящее "Тайм-аут чтения", в частности указывающий на ftpClient.setFileType (FTP.BINARY_FILE_TYPE) ;.Когда я закомментирую эту строку, она просто завершается с тем же «java.net.SocketTimeoutException: Read timed out» на следующей строке, которая пытается что-то сделать с FTP-соединением.Это происходит с ftpClient.makeDirectory ().
Любая коммуникационная функциональность после этого просто вызывает исключения влево и вправо.
При перезапуске сервера Filezilla все работает некоторое время, пока проблема не возникнет снова.Что всегда будет происходить, пока я не перезапущу сервер.
FTPClient ftpClient = null;
public boolean connect()
{
Connection conn = FileTransferUtility.conn;
if (conn != null)
{
try
{
ftpClient.connect(conn.getServer(),conn.getPort());
ftpClient.login(conn.getUser(), conn.getPw());
ftpClient.enterLocalPassiveMode();
ftpClient.setSoTimeout(5000);
ftpClient.setBufferSize(1024 * 1024);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
}
catch (Exception e)
{
e.printStackTrace();
return false;
}
return true;
}
else
{
return false;
}
}