Serveur TCP multi-client [Résolu]

meech 209 Messages postés vendredi 11 avril 2003Date d'inscription 14 août 2007 Dernière intervention - 30 déc. 2004 à 14:31 - Dernière réponse : bariland 8 Messages postés lundi 27 octobre 2008Date d'inscription 19 mai 2009 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_aardman 1905 Messages postés mercredi 22 janvier 2003Date d'inscription 17 septembre 2012 Dernière intervention - 30 déc. 2004 à 18:52
3
Merci
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.

Merci cs_aardman 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

Commenter la réponse de cs_aardman
Meilleure réponse
cs_aardman 1905 Messages postés mercredi 22 janvier 2003Date d'inscription 17 septembre 2012 Dernière intervention - 30 déc. 2004 à 18:54
3
Merci
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.

Merci cs_aardman 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

Commenter la réponse de cs_aardman
Meilleure réponse
meech 209 Messages postés vendredi 11 avril 2003Date d'inscription 14 août 2007 Dernière intervention - 30 déc. 2004 à 21:31
3
Merci
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)

Merci meech 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

Commenter la réponse de meech
bariland 8 Messages postés lundi 27 octobre 2008Date d'inscription 19 mai 2009 Dernière intervention - 11 avril 2009 à 16:28
0
Merci
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
Commenter la réponse de bariland
bariland 8 Messages postés lundi 27 octobre 2008Date d'inscription 19 mai 2009 Dernière intervention - 11 avril 2009 à 17:22
0
Merci
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
Commenter la réponse de bariland

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.