Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Frage zu Dateiransfer mit Indy

  Alt 24. Okt 2008, 20:37
Also unter Indy 10 sollte es so laufen:
Delphi-Quellcode:
TMyForm.MyServerExecute(AContext: TIdContext);
  var
    lCmd: string;
  begin
    lCmd := Trim(AContext.Connection.IOHandler.ReadLn);
    if AnsiSameText(lCmd, 'HELP') then
    begin
        AContext.Connection.IOHandler.WriteLn('HELP');
        AContext.Connection.IOHandler.WriteLn('QUIT');
        AContext.Connection.IOHandler.WriteLn('GETTIMESTAMP');
        AContext.Connection.IOHandler.WriteLn('');
    end

    else if AnsiSameText(lCmd, 'QUIT') then
    begin
        AContext.Connection.IOHandler.WriteLn('Goodbye...');
        AContext.Connection.IOHandler.WriteLn('');
        AContext.Connection.Disconnect;
    end

    else if AnsiSameText(lCmd, 'GETTIMESTAMP') then
    begin
        AContext.Connection.IOHandler.WriteLn(
          FormatDateTime(Now, 'yyyy-mm-ddThh:nn:ss.zzz'));
        AContext.Connection.IOHandler.WriteLn('');
    end;
  end;
(Hab ich aus der Doku - oder aus dem, was ich dafür halte ^^)

Und unter Indy 9 sollte wie oben beschriben laufen: Du bekommst einen TIdPeerThread und dieser hat direkt die Merhode WriteBuffer.

Also so ähnlich:
Delphi-Quellcode:
TMyForm.ServerExecute(AThread: TIdPeerThread);
  begin
    AThread.Connection.WriteBuffer('Hallo Welt', length('Hallo Welt'), True);
  end;
Aber ich hatte schon ewig nix mehr damiit gemacht ...
  Mit Zitat antworten Zitat