Serveur TCP multi-client

[Résolu]
Signaler
Messages postés
209
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
14 août 2007
-
Messages postés
7
Date d'inscription
lundi 27 octobre 2008
Statut
Membre
Dernière intervention
19 mai 2009
-
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

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
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.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
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.
Messages postés
209
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
14 août 2007

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)
Messages postés
7
Date d'inscription
lundi 27 octobre 2008
Statut
Membre
Dernière intervention
19 mai 2009

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
Messages postés
7
Date d'inscription
lundi 27 octobre 2008
Statut
Membre
Dernière intervention
19 mai 2009

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