Einzelnen Beitrag anzeigen

Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#7

Re: Indy FTPServer Rückwärzverbinden

  Alt 18. Jul 2003, 13:08
@Sakura Erst einmal Hallo. Bei einer "Passive = False" Verbindung ist es nicht ganz richtig, daß die Verbindung durch den Client gestartet wird. Sie wird duch den Client initiert. Der FtpClient wird dann faktisch zu einem trivalen Server.
Delphi-Quellcode:
// Auszug aus: procedure TIdFTP.InternalGet(const ACommand: string; ADest: TStream; AResume: Boolean = false);
    if FPassive then begin
    ...
    end else begin
      FDataChannel := TIdSimpleServer.Create(nil); try
        with TIdSimpleServer(FDataChannel) do begin
          InitDataChannel;
          BoundIP := (Self.IOHandler as TIdIOHandlerSocket).Binding.IP;
          BeginListen;
          SendPort(Binding);
          if AResume then begin
            Self.SendCmd('REST ' + IntToStr(ADest.Position), [350]); {Do not translate}
          end;
          Self.SendCmd(ACommand, [125, 150, 154]); //APR: Ericsson Switch FTP
          Listen;
          ReadStream(ADest, -1, True);
        end;
      finally
        FreeAndNil(FDataChannel);
      end;
    end;
Da ich aber nicht weiß, wozu daß Ganze gut ist, war es ja einen Versuch wert.
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat