Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Dialog mit einem Server über Indy TCP (https://www.delphipraxis.net/24858-dialog-mit-einem-server-ueber-indy-tcp.html)

supermuckl 28. Jun 2004 11:55

Re: Dialog mit einem Server über Indy TCP
 
@Stevie
Zitat:

Ja, bei ner Thread-Version sind so Schleifen natürlich Mist, ganz klar!
wieso ??

Stevie 28. Jun 2004 11:59

Re: Dialog mit einem Server über Indy TCP
 
Warum sollte ich ne Schleife machen, die dauernd Zeilen liest, bis nen TimeOut kommt und kein Text gelesen wurde, wenn ich das einfach im OnRead-Event abhandeln könnte? Nur'n Beispiel...

endeffects 28. Jun 2004 12:01

Re: Dialog mit einem Server über Indy TCP
 
nunja, also ich halte die Seite für sehr unübersichtlich,
vielleicht seh ich auch nur den wald vor lauter bäumen nicht,
man weiß es nicht. die besagte demo aus der sammlung für indy9
(/BasicClientServer/Client/) funktioniert bei mir grundlegend auch,
allerdings ist es z.B. nicht möglich zu google.com auf dem port 80
zu verbinden und dann mit writeln() einen GET Befehl senden.
alldieweil die anweisungen nach dem try connect nicht ausgeführt werden

supermuckl 28. Jun 2004 12:14

Re: Dialog mit einem Server über Indy TCP
 
Zitat:

Warum sollte ich ne Schleife machen, die dauernd Zeilen liest, bis nen TimeOut kommt und kein Text gelesen wurde, wenn ich das einfach im OnRead-Event abhandeln könnte? Nur'n Beispiel...
ich sprech vom client.. und da der kein onread hat nehm ich mir nen eigenen thread, mach ne endlos schleife rein und lese OHNE timeout via readln..

Stevie 28. Jun 2004 12:17

Re: Dialog mit einem Server über Indy TCP
 
Zitat:

Zitat von supermuckl
ich sprech vom client.. und da der kein onread hat nehm ich mir nen eigenen thread, mach ne endlos schleife rein und lese OHNE timeout via readln..

Sch**ß!!! :oops: Ich war schon wieder bei den Sockets, hast recht.

Stevie 28. Jun 2004 12:23

Re: Dialog mit einem Server über Indy TCP
 
Hab mal kurz was zusammengefrickelt...
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, StdCtrls;

type
  TForm1 = class(TForm)
    IdTCPClient: TIdTCPClient;
    lbCommunication: TListBox;
    btnConnect: TButton;
    btnDisconnect: TButton;
    edtHost: TEdit;
    edtPort: TEdit;
    Memo1: TMemo;
    Timer: TTimer;
    procedure btnConnectClick(Sender: TObject);
    procedure IdTCPClientConnected(Sender: TObject);
    procedure IdTCPClientDisconnected(Sender: TObject);
    procedure TimerTimer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnConnectClick(Sender: TObject);
begin
  lbCommunication.Items.Clear;
  with IdTCPClient do
    begin
      Host := edtHost.Text;
      Port := StrToint(edtPort.Text);
      try
        Connect; // add a timeout here if you wish, eg: Connect(3000) = timeout after 3 seconds.
        WriteLn('GET / HTTP/1.0'+#13#10);
      except
        on E : Exception do
//          LockControls(True);
          ShowMessage(E.Message);
      end;
    end;
end;

procedure TForm1.IdTCPClientConnected(Sender: TObject);
begin
  btnConnect.Enabled := false;
  btnDisconnect.Enabled := true;
  Timer.Enabled := True;
end;

procedure TForm1.IdTCPClientDisconnected(Sender: TObject);
begin
  btnConnect.Enabled := true;
  btnDisconnect.Enabled := false;
  Timer.Enabled := False;
end;

procedure TForm1.TimerTimer(Sender: TObject);
var
  s: string;
begin
  s := IdTCPClient.ReadLn(#$A, 5);
  if s <> '' then
    Memo1.Lines.Add(s);
end;

end.

endeffects 28. Jun 2004 12:36

Re: Dialog mit einem Server über Indy TCP
 
hmm ich kann nicht nachvollziehen welchen unterschied
es machen sollte wenn man sich über tcp nun zu einem server
verbindet, egal welchen dienst er auf dem entsprechenden port
laufen hat, dazu ist doch die besagte IdTCPClient da,
die meisten anderen indy komponenten sind doch lediglich
eine abwandlung dieser, in dem sourcecode meines
ersten postings hat das doch auch geklappt :wall:

endeffects 29. Jun 2004 09:18

Re: Dialog mit einem Server über Indy TCP
 
oh danke für Eure Hilfe und den Beispielcode =)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:57 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz