AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy 10.6.5040 TCPServer Serverschliessen und Client Verbindungen trennen
Thema durchsuchen
Ansicht
Themen-Optionen

Indy 10.6.5040 TCPServer Serverschliessen und Client Verbindungen trennen

Ein Thema von Cyberaxx · begonnen am 22. Dez 2013 · letzter Beitrag vom 3. Apr 2014
 
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Indy 10.6.5040 TCPServer Serverschliessen und Client Verbindungen trennen

  Alt 23. Dez 2013, 22:43
Egal was ich versuche der Server trennt den Client nicht und der Client bekommt auch keine Meldung über einen disconnect.

Rufe ich TIdContext(IdTCPServer.Contexts.LockList[i]).Connection.Disconnect; auf dann wird am Server das OnDisconnect aufgerufen aber das war es dann auch schon.
Was da geschieht kann man ohne einen Blick auf die OnExecute Methode des Servers nicht sagen. Zwei häufige Probleme sind:

* eine in OnExecute aufgetretene Indy-Exceptions wird abgefangen (zum Beispiel durch ein leeres except ... end)
* die Anwendung blockiert wenn in OnExecute ein Deadlock auftritt, zum Beispiel im Zusammenhang mit dem VCL Thread

Beispiel:
Zitat:
(...) make sure that your server event handlers are not performing any synchronized operations to the main thread while the main thread is busy deactivating the server, otherwise a deadlock will occur.
(Quelle)
Übersetzt:
Zitat:
"achte darauf, dass die Event Handler des Servers keine "synchronized" Operationen im Hauptthread ausführen, während der Mainthread dabei ist, den Server zu beenden, da sonst ein Deadlock entsteht"
Die normale Methode einen TIdTCPServer zu beenden ist Active auf False zu setzen. Wenn der Server blockiert, warten die Clients bei einer Read oder Write Operation bis zum Timeout, das je nach Betriebssystem eine längere Zeit dauert. Indy TCP Clients erhalten keine explizite Benachrichtigung, wenn der Server die Verbindung trennt (das ist völlig normal bei TCP/IP).

Siehe auch: http://stackoverflow.com/questions/1...n-deactivating
Michael Justin

Geändert von mjustin (23. Dez 2013 um 22:50 Uhr) Grund: Hinweis auf Synchronized
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz