Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi [Indy] TCPServer mit aktiver Verbindung beenden (https://www.delphipraxis.net/29598-%5Bindy%5D-tcpserver-mit-aktiver-verbindung-beenden.html)

Duffy 12. Sep 2004 15:25

Re: [Indy] TCPServer mit aktiver Verbindung beenden
 
Hallo Dax,
selbes Ergebnis ...

bye
Claus

Dax 12. Sep 2004 15:26

Re: [Indy] TCPServer mit aktiver Verbindung beenden
 
Ganz rabiat: TCPServer.Destroy;

Duffy 12. Sep 2004 15:31

Re: [Indy] TCPServer mit aktiver Verbindung beenden
 
Hallo Dax,
dann kommt ein Zugriffsfehler, was aber auch logisch ist, denn die Komponente liegt auf dem Formurlar. Es muß da eine saubere Lösung geben.

bye
Claus

linobrocken 21. Sep 2004 15:55

Re: [Indy] TCPServer mit aktiver Verbindung beenden
 
Hallo,
ich habe genau das selbe Problem, nur das bei mir noch hinzukommt das ,wenn ich ein Client disconnected und danach ein weiterer die Routine OnDisconnect auf Server Seite einfach nicht ausgeführt wird, weil der Server noch im OnExecute festhängt.

Gruß Pascal

Jakson 22. Mär 2012 11:31

AW: [Indy] TCPServer mit aktiver Verbindung beenden
 
Hatte gerade das selbe Problem.

Wurde folgendermaßen gelöst:
Code:
procedure TForm.FormDestroy(Sender: TObject);
var MyList : TList;
    Count : Integer;
begin
 MyList := IdTCP_Server.Contexts.LockList;
 try
  for Count := 0 to MyList.Count - 1 do
   TIdContext(MyList[Count]).Connection.Disconnect;
 finally
  IdTCP_Server.Contexts.UnlockList;
 end;
 IdTCP_Server.Active := False;
end;
Bei beenden des Programms werden alle noch offenen Verbindungen getrennt.
Die mit LockList gesperrte Liste muss natürlich wieder mit UnlockList entsperrt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:32 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