Я пытаюсь узнать, как подключить свое приложение к определенному FTP-серверу. Для этой цели я использую Apache Commons net, что неплохо. Пока мне удалось подключить мое приложение к FTP-серверу, пока я подключился к Wi-Fi. Пока я подключен к Wi-Fi, его подключение и ведение журнала происходит гладко, но когда я пытаюсь подключить свой FTP-сервер к моей сети celluar, он дает мне ошибку таймаута подключения. Сначала я подумал об этом из-за скорости сотовой сети. Поэтому я увеличил тайм-аут для предоставления моей сотовой сети гораздо больше времени для подключения, но это не сработало. Я имею в виду, что это не работает. Вот код, который я использую. Его в классе, который расширен AsyncTask.Android - с Apache Commons Net, ошибка таймаута соединения при использовании сотовой сети
@Override
protected String doInBackground(String[] params) {
String temp = "Files : \n";
FTPClient client = new FTPClient();
client.setConnectTimeout(360 * 1000);
client.setDefaultTimeout(360 * 1000);
try {
Log.d("FtpDebug", "Connecting ...");
client.connect(myftpservername);
client.enterLocalPassiveMode();
Log.d("FtpDebug","Connected!");
}catch (Exception e){
Log.d("FtpError", e.toString());
}
Я сказал, он не работает, потому что это дает мне эту ошибку
D/FtpError: java.net.SocketTimeoutException: failed to connect to xxx.xx.xxxx.xx.xx/xxx.xxx.xx.x (port 21) after 360000ms: isConnected failed: ETIMEDOUT (Connection timed out)
В этой ошибки он говорит, что не удалось подключиться после попытки 360.000ms = 6 минут. Но на самом деле, я получаю эту ошибку за 1 минуту или менее 1 минуты. Так что ее даже не ждут 6 минут.
Понятно, что Im делает что-то неправильно. Я был бы очень рад, если бы кто-то это сказал. Благодарю.
Насколько я знаю, у Apache commons net есть два метода для создания пассивного режима: .enterLocalPassiveMode(); '.enterRemotePassiveMode();' но мне нужно сначала подключить свой FTP-сервер для использования таких методов. В противном случае это дает мне ошибку соединения. Я не знаком с FTP-серверами или другими методами, которые вы предложили. Можете ли вы направить меня, если мне нужно изменить его, чтобы сделать его более стабильным? – BlocBloc
@BlocBloc: Я не знаком с конкретными реализациями в Apache Commons, я знаю только внутренности и проблемы самого FTP-протокола. Поэтому моя рекомендация состоит в том, чтобы держаться подальше от него, потому что это просто вызывает проблемы в настройках, которые я описал, и многие из них не могут быть исправлены на стороне клиента или сервера. –