Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#11

AW: Indy TCPClient Connection Status

  Alt 24. Mär 2015, 15:50
Das OnExecute wird doch nur ausgeführt, wenn was vom Client kommt oder nicht?
OnExecute wird vom Server in einer Schleife immer wieder ausgeführt. Es gibt ja auch Fälle in denen der Client nur einmal eine Verbindung herstellt und dann wartet, bis der Server Daten sendet, und dann weiter wartet.

Der Server würde dann in OnExecute prüfen, ob er eine neue Nachricht für den Client hat, und falls nein, die Methode verlassen ... die dann aber "sofort" wieder aufgerufen wird. (Das kann zu einer 100 % Auslastung der CPU führen, dann muss noch eine Bremse wie Sleep eingebaut werden).

Das saubere clientseitige Disconnect würde der Server beim Read oder Write, oder mit CheckForDataOnSource / CheckForDisconnect feststellen.
Michael Justin
  Mit Zitat antworten Zitat