Bonjour,

Je suis en train d'écrire un chat. Pour le moment plusieurs clients peuvent se connecter et discuter : tout va bien. Mais les utilisateurs doivent aussi pouvoir créer des groupes de discussion avec une commande creategroup nom_du_gpe membre1 membre2 membre3. Le serveur doit alors demander à membre1 membre2 et membre3 s'ils veulent entrer dans le groupe, et c'est là que ça se corse pour moi. Ce que j'ai fait pour le moment :

  • Côté serveur : Pour chaque membre, je crée un thread. Dans chaque thread j'envoie un message "voulez vous faire partie du groupe ? (o/n)". Mais pour récupérer la réponse, je ne peux pas utiliser la socket client déjà connectée au serveur parce qu'elle est déjà lue périodiquement dans le main() de mon programme... Il faut donc que j'ouvre une nouvelle connexion spécialement pour cette requête. J'ouvre donc une nouvelle socket et j'attends que le client se connecte.
  • Côté client : quand le client reçoit "voulez-vous faire partie du groupe ? (o/n)", il crée une nouvelle socket pour envoyer sa réponse. Problème : comment faire pour que cette socket se connecte précisément à celle que vient d'ouvrir le serveur ?

La question se pose aussi côté serveur : j'ouvre trois thread dans lesquels j'ouvre une socket. Comment être sûr que la socket à laquelle est destiné un client précis acceptera bien une connexion de ce client et non d'un autre ?

J'espère que ça ne parait pas trop confus. Peut-être aussi que je fais fausse route et qu'il y a un moyen plus simple de réaliser cette demande de confirmation.

Merci d'avance pour vos réponses.