Serveur mutli-threads

mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010 - 15 mars 2009 à 18:15
polaris1970 Messages postés 5 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 20 décembre 2009 - 20 déc. 2009 à 00:04
Bonjour,

Je suis entrain de développer une application
Client/Serveur en utilisant TCPClient et TCPListener. Mon problème est
comment je peux créer un serveur mutli-clients : est ce que je suis
obligé d'utiliser des threads dès que TCPListener accepte un client ?

5 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
16 mars 2009 à 10:35
Salut.

Ça me semble effectivement la seule solution.

Krimog :
while (!succeed = try()) ;
0
cs_boucherf Messages postés 6 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 février 2011
16 mars 2009 à 13:21
essayer de créer un file FIFO et chaque fois si la port est occupe attendre de libérer puis accepter le seconde stocke ainsi de suit 
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
16 mars 2009 à 14:08
"essayer de créer un file FIFO et chaque fois si la port est occupe
attendre de libérer puis accepter le seconde stocke ainsi de suit ". Bah dans cas ça ne gère pas le multi-clients (ce qui implique simultanément (enfin je pense que c'est bien ça dont tu parles Mimosa803))

Krimog :
while (!succeed = try()) ;
0
mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010
16 mars 2009 à 17:23
Bonjour,

Merci pour vos réponses, en fait la méthode accept ()de TcpListener renvoie un objet de type TcpClient, donc si je mes le serveur en echo (dans une boucle) normalement il va créer plusieurs TcpClient. Mais je voudrais savoir si je suis obligé de les synchroniser en utilisant un thread pour chaqu'un d'eux.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
polaris1970 Messages postés 5 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 20 décembre 2009
20 déc. 2009 à 00:04
Il y a un moyen de se passer de thread ( du moins directement ), il faut utiliser les fonctions BeginAccept et EndAccept pour accepter les connections des clients. Dans la fonction EndAccept, il faut initié le dialogue du tcpclient obtenu ainsi et réappeler la fonction BeginAccept pour accepter une nouvelle connection.

De même pour TCPClient obtenu, il faut utilisé les fonctions BeginRead EndRead, BeginWrite et EndWrite pour gérer le dialogue désiré.

Les threads sous jacent sont gérés "automatiquement" par le framework...
0
Rejoignez-nous