Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.009 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: Dialog mit einem Server über Indy TCP

  Alt 28. Jun 2004, 07:52
Herzlich willkommen!

1. Ich schätze mal, du benutzt die 8er Version von Indy; mein Tip: nimm die 9er.
2. Muss es wirklich ein Konsolenprogramm sein? Indy benutzt nämlich Threads und die in einem Konsolenprogramm umzusetzen ist schon ziemlich haarig.
3. Wenn's was mit HTTP zu tun hat, dann nimm die Komponente TIdHTTP.
4. Für mehrzeilige Texte gibt's die Funktion ReadStrings (erst ab Version 9, glaub ich), klappt aber in deinem Beispiel nicht.
5. In deinem Beispiel ist die Schleifenvariante wahrscheinlich die beste Lösung (nix anderes macht im Grunde genommen ReadStrings...).

Also:
Delphi-Quellcode:
program Konsole;
{$APPTYPE CONSOLE}

uses
  Classes,
  IdTCPClient,
  SysUtils;

var
  test: string;
  Client: TIdTCPClient;

begin
  Client := TIdTCPClient.Create(nil);
  try
    Client.Host := 'www.google.com';
    Client.Port := 80;
    Client.Connect;
    try
      Client.WriteLn('GET / HTTP/1.0'+#13#10);
      repeat
        test := Client.ReadLn(#$A, 50);
        if test <> 'then
        begin
          WriteLn(test);
          WriteLn(IntToStr(pos('200',test)));
        end;
      until test = '';
    finally
      Client.Disconnect;
    end;
    WriteLn('Disconnected.');
  finally
    FreeAndNil(Client);
  end;
  WriteLn('Press Enter');
  ReadLn;
end.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat