Partager via


Instances de canal nommé

Le serveur de canal le plus simple crée une instance unique d’un canal, se connecte à un seul client, communique avec le client, se déconnecte du client, ferme le handle de canal et se termine. Toutefois, il est plus courant qu’un serveur de canal communique avec plusieurs clients de canal. Un serveur de canal peut utiliser une seule instance de canal pour se connecter à plusieurs clients de canal en se connectant à chaque client et en se déconnecteant de chaque client en séquence, mais les performances seraient médiocres. Le serveur de canal doit créer plusieurs instances de canal pour gérer efficacement plusieurs clients simultanément.

Il existe trois stratégies de base pour la maintenance de plusieurs instances de canal.

Le serveur de canaux multithreads est plus facile à écrire, car le thread de chaque instance gère les communications pour un client de canal unique. Le système alloue le temps processeur à chaque thread selon les besoins. Toutefois, chaque thread utilise des ressources système, ce qui est un inconvénient pour un serveur de canal qui gère un grand nombre de clients.

Avec un serveur à thread unique, il est plus facile de coordonner les opérations qui affectent plusieurs clients, et il est plus facile de protéger les ressources partagées contre l’accès simultané par plusieurs clients. Le défi d’un serveur à thread unique est qu’il nécessite la coordination des opérations superposées pour allouer du temps processeur pour gérer les besoins simultanés des clients.