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 ...