Delphi XE7 Android FMX Threading для подключения к интернету - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь подключиться к 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 на случай, если что-то не так (хотя я не ошибаюсь во всех его настройках по умолчанию)

Just in case this is the config for IdFTP1 as DesignTime

Part 2 of config

Это версия indy, которую мы установили прямо сейчас:

Indy version just in case

Обновление файла журнала в 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.
...