Zitat von
Net7:
hmm... und was ist, wenn es kein OnDisconnect-Ereignis gibt, weil der Client abgestürzt ist ???
Dann ist die Socket Instanz trotzdem gültig. Diese wird erst nach einem OnDisconnect gelöscht, somit kein Problem. Wenn du dir selber eine Art Ping in dein Protokoll implementierst, dann kannst du diesen Absturz selber mitbekommen und selber den Socket mit Close schliessen (Socket.Close -> löst auch wieder ein OnDisconnect aus). Auch wenn beim senden ein Fehler kommt oder sonstiges, alles kein Problem mit den o.g. Methoden.
Im OnError empfehle ich grundsätzlich den angegebenen Socket mit Socket.Close zu schliessen, da man nach einem Fehler von dem Socket bei den TServerSocket/TClientSocket nix mehr erwarten kann.