System.Win.ScktComp.TServerClientThread.ClientExecute

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

procedure ClientExecute; virtual;

C++

virtual void __fastcall ClientExecute();

Propriétés

Type Visibilité  Source Unité  Parent
procedure
function
protected
System.Win.ScktComp.pas
System.Win.ScktComp.hpp
System.Win.ScktComp TServerClientThread

Description

Simule les événements OnClientRead et OnClientWrite pour le socket serveur associé.

TServerClientThread appelle ClientExecute depuis sa méthode Execute. ClientExecute vérifie si des informations à lire figurent dans la connexion par socket associée et, si tel est le cas, simule un événement OnClientRead sur le socket serveur associé. Si le client n'a envoyé aucune information, ClientExecute simule un événement OnClientWrite.

Comme le socket serveur qui reçoit ces événements n'est pas local au thread, ces derniers se produisent dans le thread VCL principal à l'aide de la méthode Synchronize. Cette méthode peut être lente si le socket serveur a trop de connexions client, car chaque thread doit attendre que les autres threads aient fini de lire ou d'écrire. Lorsqu'un socket serveur reçoit de nombreuses requêtes de connexions client, surchargez ClientExecute pour gérer la lecture ou l'écriture avec une instance locale aux threads de TWinSocketStream. Dans la méthode ClientExecute, assurez-vous de vérifier régulièrement la propriété Terminated.

Remarque :  N'utilisez pas les propriétés et méthodes d'objets globaux directement dans la méthode ClientExecute. Placez l'utilisation d'objets non locaux aux threads dans un appel de procédure séparé puis appelez cette procédure en la transmettant en tant que paramètre à la méthode Synchronize.

Voir aussi