Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TIdTCPClient ruft OnDisconnected nicht auf! (https://www.delphipraxis.net/146813-tidtcpclient-ruft-ondisconnected-nicht-auf.html)

ralfiii 27. Jan 2010 11:28


TIdTCPClient ruft OnDisconnected nicht auf!
 
Wenn ich mich mit einem TIdTCPClient zu einem TIdTCPServer verbinde und in weiterer folge den Server beende, dann wird der OnDisconnect-Event des Clients nicht aufgerufen.

Wenn ich clientseitig einen Reader-Thread einsetze, dann wird zumindest OnStatus aufgerufen, aber so will ich das nicht machen. Meine Kommunikation mit dem Server ist sehr primitiv, die läuft völlig linear, kommt ohne Threads aus.

Zum testen, 2 apps. In der 2. App, dem Client, würde ich gern einene Evetn für das OnDisconnect haben wenn man den Server schliesst.

Danke!!!!

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
     IdTCPServer1.DefaultPort:=47110;
     IdTCPServer1.Active:=True;
end;

procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var s : string;
begin
     Memo1.Lines.Add('Connected from '+AContext.Connection.Socket.Binding.PeerIP);
     while True do
     begin
          s:=AContext.Connection.IOHandler.ReadLn;
          Memo1.Lines.Add('Srv Rcv: '+s);
          AContext.Connection.IOHandler.WriteLn('received string with length '+IntToStr(length(s)));
     end;
end;
und
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
     IdTCPClient1.Host:='127.0.0.1';
     IdTCPClient1.Port:=47110;
     IdTCPClient1.Connect;
end;

procedure TForm1.Button1Click(Sender: TObject);
var s : string;
begin
     IdTCPClient1.IOHandler.WriteLn(Edit1.Text);
     s:=IdTCPClient1.IOHandler.ReadLn;
     Memo1.Lines.Add('Client received : '+s);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 Uhr.

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