Besoin d'aide dans la programmation des socket en c multiclient
Fermé
yasmine223
Messages postés
1
Date d'inscription
mardi 22 janvier 2013
Statut
Membre
Dernière intervention
22 janvier 2013
-
22 janv. 2013 à 02:08
totof31 Messages postés 163 Date d'inscription lundi 29 octobre 2012 Statut Membre Dernière intervention 30 avril 2013 - 1 févr. 2013 à 11:36
totof31 Messages postés 163 Date d'inscription lundi 29 octobre 2012 Statut Membre Dernière intervention 30 avril 2013 - 1 févr. 2013 à 11:36
A voir également:
- Besoin d'aide dans la programmation des socket en c multiclient
- Application de programmation - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Forcer la fermeture d'un programme - Guide
- Mettre en veille un programme - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
1 réponse
totof31
Messages postés
163
Date d'inscription
lundi 29 octobre 2012
Statut
Membre
Dernière intervention
30 avril 2013
74
Modifié par totof31 le 1/02/2013 à 11:36
Modifié par totof31 le 1/02/2013 à 11:36
Bonjour,
Ton erreur vient du fait qu'à chaque fois que tu passes par accept, tu reçois un nouveau descripteur de socket. Or tu ne mémorises que le dernier avec s_service. Il faut tous les mémoriser (dans un tableau par exemple).
Ensuite, quand tu crées ton thread, il faut lui passer le nouveau descripteur pour qu'il écoute (read) uniquement sur celui-ci.
Enfin, lors de l'envoi vers les clients connectés, il faut faire autant de write qu'il y a de client (boucle avec les éléments du tableau des descripteurs), sauf peut-être pour le client qui a émis le message.
Ton erreur vient du fait qu'à chaque fois que tu passes par accept, tu reçois un nouveau descripteur de socket. Or tu ne mémorises que le dernier avec s_service. Il faut tous les mémoriser (dans un tableau par exemple).
Ensuite, quand tu crées ton thread, il faut lui passer le nouveau descripteur pour qu'il écoute (read) uniquement sur celui-ci.
Enfin, lors de l'envoi vers les clients connectés, il faut faire autant de write qu'il y a de client (boucle avec les éléments du tableau des descripteurs), sauf peut-être pour le client qui a émis le message.