Я пытаюсь подключиться к FTP-серверу из моего приложения для Android, все работает правильно, если нет исключений, но если я получаю тайм-аут, приложение для Android просто закрывается.
Я создал темудля FTP-соединения, но все та же проблема.
PS, если я скомпилирую его для Windows, он будет работать точно так же, как и должен, и правильно обрабатывать исключения.
Код для FTP-соединения:
IdFTP1.ConnectTimeout := 1000;
IdFTP1.Passive := True;
IdFTP1.Host := ftp_server;
IdFTP1.Username:= ftp_user;
IdFTP1.Password:= ftp_pass;
if ftp_port<> '' then begin
Try
IdFTP1.Port := StrToInt(ftp_port);
except
IdFTP1.Port := 21;
End;
end
else
IdFTP1.Port := 21;
TTask.Run(
procedure
var
ftp_error : Boolean;
begin
Try
ftp_error := False;
IdFTP1.Connect;
IdFTP1.Passive := true;
if ftp_folder= '' then
IdFTP1.Put( System.IOUtils.TPath.Combine(System.IOUtils.tpath.getdocumentspath,'temp.txt'), ftp_file, False )
else begin
if ftp_folder[length(ftp_folder)] <> '/' then
ftp_folder:= ftp_folder+ '/';
IdFTP1.Put( System.IOUtils.TPath.Combine(System.IOUtils.tpath.getdocumentspath,'temp.txt'), ftp_folder+ftp_file, False );
end;
IdFTP1.Disconnect;
except
ftp_error := True;
End;
TThread.Queue(nil,
procedure
begin
if not ftp_error then begin
showmessage('FTP connection correct');
end
else begin
showmessage('Error FTP');
end;
end);
end);
Это конфигурация IdFTP1 на случай, если что-то не так (хотя я не ошибаюсь во всех его настройках по умолчанию)
Это версия indy, которую мы установили прямо сейчас:
Обновление файла журнала в Windows:
Stat Connected.
Recv 26/02/2019 9:51:03: 220-FileZilla Server 0.9.60 beta<EOL>220-written by Tim Kosse (tim.kosse@filezilla-project.org)<EOL>220 Please visit https://filezilla-project.org/<EOL>
Sent 26/02/2019 9:51:03: HOST [172.26.29.170]<EOL>
Recv 26/02/2019 9:51:03: 500 Syntax error, command unrecognized.<EOL>
Sent 26/02/2019 9:51:03: USER admin<EOL>
Recv 26/02/2019 9:51:03: 331 Password required for admin<EOL>
Sent 26/02/2019 9:51:03: PASS admin<EOL>
Recv 26/02/2019 9:51:03: 230 Logged on<EOL>
Sent 26/02/2019 9:51:03: FEAT<EOL>
Recv 26/02/2019 9:51:03: 211-Features:<EOL> MDTM<EOL> REST STREAM<EOL> SIZE<EOL> MLST type*;size*;modify*;<EOL> MLSD<EOL> UTF8<EOL> CLNT<EOL> MFMT<EOL> EPSV<EOL> EPRT<EOL>211 End<EOL>
Sent 26/02/2019 9:51:03: CLNT Indy 10.6.1.5182<EOL>
Recv 26/02/2019 9:51:03: 200 Don't care<EOL>
Sent 26/02/2019 9:51:03: TYPE I<EOL>
Recv 26/02/2019 9:51:03: 200 Type set to I<EOL>
Sent 26/02/2019 9:51:03: SYST<EOL>
Recv 26/02/2019 9:51:03: 215 UNIX emulated by FileZilla<EOL>
Sent 26/02/2019 9:51:03: TYPE I<EOL>
Recv 26/02/2019 9:51:03: 200 Type set to I<EOL>
Sent 26/02/2019 9:51:03: PASV<EOL>
Recv 26/02/2019 9:51:03: 227 Entering Passive Mode (172,26,29,170,232,171)<EOL>
Sent 26/02/2019 9:51:03: STOR camacho/p1<EOL>
Recv 26/02/2019 9:51:03: 150 Opening data channel for file upload to server of "/camacho/p1"<EOL>
Recv 26/02/2019 9:51:03: 226 Successfully transferred "/camacho/p1"<EOL>
Sent 26/02/2019 9:51:03: QUIT<EOL>
Recv 26/02/2019 9:51:03: 221 Goodbye<EOL>
Stat Disconnected.