Meilleur moyen pour chat multi client.

deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 20 sept. 2007 à 17:22
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009 - 23 sept. 2007 à 12:45
Yop à tous,

Voila , je suis en train de dévelloper un chat multi client pour le réseaux chez moi.
 Mais voila , en codant le serveur , je me trouve à un carrefour.

Ce carrefour c'est pour le traitement des message envoyé aux serveur. Vu que plusieur client se connecte aux serveurs et que ceux-ci envoyer des messages au serveur, je me demandai la meilleur façons de traiter cela. Est ce qu'il est mieux de à chaque nouvelle connexion, créer un thread d'écoute pour le nouveau client et donc si j'ai 10 clients connecter, cela fait 10 thread avec un recv qui est prêt en permanance, ou alors deuxième solution que j'ai pensé, c'est avec la liste des clients, la parcourire et vérifier si à chaque fois le client à envoyé une donnée, ce qui me parait la solution la moin bien. Voila je vous demande juste votre avis.

Merci d'avance.

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]

6 réponses

acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 6
20 sept. 2007 à 17:59
salut

il est important de savoir si dans ton programme les clients peuvent intéragir entre eux (autrement dit si les thread du serveur doivent pouvoir communiquer avec les autres thread du serveur), ou s'il sont tous indépendants
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
20 sept. 2007 à 18:29
ils sont tous indépendants, en faite le serveur redirige les messages vers le clients voulu.

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]
0
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
20 sept. 2007 à 18:57
Bonjour, 

Tu  peut faire avec un select ca correspond a ta seconde solution mais implementee avec de l'attente passive
ce qui est mieux qu'interroger les clients qui ont rien a dire
=
Une autruche ne se cuit pas aux petits lardons
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
22 sept. 2007 à 21:58
Utilise plutot des sockets asynchrones et a l'aide de la fonction select tu retrouveras très facilement l'emeteur du message.

Shell
0

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

Posez votre question
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
23 sept. 2007 à 12:31
mmm merci DeaThCrash, j'ai effectivement regardé ta source qui en parle, mais je ne comprend pas bien comment cela fonctionne en définitive, il faudrait que je me documente + sur le sujet, et en plus je voi pas trop comment l'implémenté avec plusieur clients. Mais je vais y regarder, en attendant si tu à de la doc où quoi sur le sujet , pas de problème :D

Merci.

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]
0
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
23 sept. 2007 à 12:45
Salut,

pourquoi tu ne gère pas le serveur comme distributeur de client?

je m'explique, les clients se connectent au serveur, le serveur informe de l'ip du client désireux de communiquer avec un autre client, et les clients communiquent entre eux directement.

sa permet d'éviter une surcharge du serveur et d'implémenter a long terme un réseau de client/serveur chat directement.

ciao et bon codage
0
Rejoignez-nous