System.Win.ScktComp.TServerClientThread.ClientExecute

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure ClientExecute; virtual;

C++

virtual void __fastcall ClientExecute();

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
protected
System.Win.ScktComp.pas
System.Win.ScktComp.hpp
System.Win.ScktComp TServerClientThread

Beschreibung

Simuliert OnClientRead- und OnClientWrite-Ereignisse für den zugehörigen Server-Socket.

TServerClientThread ruft ClientExecute in der Methode Execute auf. ClientExecute überprüft, ob lesbare Informationen in der zugehörigen Socket-Verbindung vorhanden sind. Falls dies zutrifft, simuliert ClientExecute ein OnClientRead-Ereignis auf dem zugehörigen Server-Socket. Wenn keine Informationen vom Client vorhanden sind, simuliert ClientExecute ein OnClientWrite-Ereignis.

Da der Server-Socket, der diese Ereignisse erhält, für den Thread nicht lokal ist, werden die Ereignisse im Haupt-VCL-Thread mit der Methode Synchronize ausgelöst. Wenn der Server-Socket viele Cleint-Verbindungen unterhält, ist diese Methode eventuell zu langsam, weil jeder Thread so lange warten muss, bis die Lese- und Schreibvorgänge der anderen Threads abgeschlossen sind. Wenn ein Server-Socket viele Client-Verbindungsanforderungen erhält, sollten Sie ClientExecute überschreiben, um das Lesen und Schreiben über eine thread-lokale Instanz von TWinSocketStream zu verwalten. In der Methode ClientExecute sollten Sie dabei regelmäßig die Eigenschaft Terminated überprüfen.

Anmerkung:  Verwenden Sie die Eigenschaften und Methoden von globalen Objekten nicht direkt in der Methode ClientExecute. Übernehmen Sie Objekte, die nicht thread-lokal sind, in eine separate Prozedur und rufen Sie diese Prozedur auf, indem Sie sie als Parameter an die Methode Synchronize übergeben.

Siehe auch