Serveur TCP multi-client

Résolu
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007 - 30 déc. 2004 à 14:31
bariland Messages postés 7 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 19 mai 2009 - 11 avril 2009 à 17:22
Bonjour,

Je me suis attelé au développement d'un serveur TCP (extensible à divers protocoles) sous Win32 en C.
Concrètement, je souhaiterais connaitre la meilleure méthode (la plus opimisée) pour faire en sorte que mon serveur accepte plusieurs connexions simultanées :
- dois-je créer un nouveau thread pour chaque nouveau client ? dans ce cas, quel est la logique permettant de réaliser cela (ex-ante ou ex-post l'écoute du serveur) ?
- j'ai lu sur un forum quelconque que créer un thread à chaque connexion n'était pas nécessairement la meilleure des solutions. Bien évidemment, aucune précision n'était fournie. Dans l'hypothèse où la véracité de ces propos s'avère exacte (rien de moins sûr...), quelqu'un pourrait-il m'en dire un peu plus ?

En vous remerciant par avance de votre réponse.

NB. Les bouts de code, simplifiés au maximum, de serveur tcp multi-client sont les bienvenus. Aussi, sachez que je cherche à réaliser un serveur ayant la capacité de répondre aux requêtes de 10 à 20 clients simultanés.

5 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
30 déc. 2004 à 18:52
Salut,
En win32, les thread sont une mauvaise solution car ils consomment trop de ressource systeme, et de plus un processus ne peut pas en faire autant qu'il veut (la limite par processus est de 1000 threads il me semble).

Windows dispose de plusieurs modeles d'utilisation des sockets, le modele le plus performant etant le modele qui utilise le Completion Port et l'overlapped:

voila un ebook:
http://betouchi.free.fr/doc_et_ebook/prog_reseau/network2.chm
tout est dans les chapitres 5 et 6.
3
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
30 déc. 2004 à 18:54
Salut,
J'oubliais les exemples du bouquin:
http://betouchi.free.fr/doc_et_ebook/prog_reseau/exemples-network2.zip

tu risques d'en avoir besoin.
3
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
30 déc. 2004 à 21:31
Waouh ! Terrible, voilà ce que je cherchais depuis bien longtemps... Comme quoi je fais preuve de médisance, puisque le message posté sur le forum traitant des threads et des sockets sous Win32 retournait de bonnes informations.

Sincèrement merci Monsieur Aardman (car, oui, vous êtes un grand Monsieur), tu m'évites de longs mois de recherche. Le tout a l'air costaud, mais je compte m'y jeter à corps perdu...

Merci aussi pour les exemples, j'avoue que c'est par la pratique que j'apprends le mieux (ma formation initiale n'est pas du tout liée à l'informatique).

:big)
3
bariland Messages postés 7 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 19 mai 2009
11 avril 2009 à 16:28
bonjour meech moi je suis ds la mais etat que toi
pour mon PFE en bts je suis realise un chat multiclient multiplat forme
et un transfert de fichier via les socket
si tu quelque chose qui pourra m'aider je serai reconnaisant
voila mon msn     [mailto:badr-bari@hotmail.com badr-bari@hotmail.com]  merci en avance
0

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

Posez votre question
bariland Messages postés 7 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 19 mai 2009
11 avril 2009 à 17:22
bonjour meech moi je suis ds la mais etat que toi
pour mon PFE en bts je suis sensé realise un chat multiclient multiplat forme
et un transfert de fichier via les socket en language c je débute sous windows .j'ai les notion de base sur les sockets et les thread .j'arrive a codé un simple client-serveur itteratif
 mais pour le multiclient !!   j'arrive pas
si tu quelque chose qui pourra m'aider je serai reconnaisant
voila mon msn     [mailto:badr-bari@hotmail.com badr-bari@hotmail.com]  merci en avance
0
Rejoignez-nous