Bonjour,
J'ai un soucis lorsque je fais un write() vers une socket qui est contenue dans une structure qui elle est placée dans une file de messages ...
illustration:
Coté Client:
- Un fork() permettant la réception des messages envoyés par le serveur est lancé
- Envoie des requêtes (qui sont ajoutées dans une file de messages coté serveur).
Coté Serveur:
- Des fork() pour accepter les clients sont lancé (quand le premier client est accepté, un autre fork() qui est unique est lancé et permet de gère la file de messages).
-On récupère les requêtes envoyées par les clients dans la structure et on y ajoute leurs SOCKET, une fois cela fais on place la structure dans la file de messages.
structure:
la structure:
-Le fork() qui traite la file de messages notifie les clients une fois leurs requêtes traité
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 typedef struct TRT TRT struct TRT{ ... SOCKET csock };
Problème:
-Quand le fork() qui traite la file de messages notifie les clients seul le premier client est notifié via un write(trt.csock,...); pourtant toutes les requêtes sont traité et dans la partie du code ou se trouve les write(), les printf() de debug sont bien affiché, et quand j'affiche la SOCKET contenu dans ma structure j'ai le même résultat lorsque j'affiche la SOCKET que après avoir accepte le client.
note: j'ai remarqué que si je lance le fork() qui gère la file de messages avant d'accepter les clients, même le premier client n'est plus notifier via sa SOCKET et pourtant les requêtes de ma structure sont bien géré.
Bien à vous!
(Désolé des fautes d’orthographes restante, je ne suis pas très fort pour ça).
Partager