Bonjour à tous !
Je dois créer un petit jeu multi-joueurs en temps réel (max 10 connections). Pour ce faire j'ai créé un serveur multi-thread.
J'ai un problème lors de la déconnection d'un client. Le serveur boucle sans fin pour afficher le dernier message reçu.
Voila le thread pour chaque clientLe client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void* reception(void* arg) { char buffer[4096]; while(recevoir((int)arg, buffer)) { cout << buffer << endl; } close((int)arg); return (void*)1; }
Lorsqu'on quitte le client, que ce soit proprement ou par ctrl-c. Le serveur n'arrête pas d'afficher "hello". Je pense que ça doit être un problème de socket non fermé mais je n'en suis pas sûr !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char buf[4096]= "hello"; envoyer (socket, buf); sleep(2); envoyer (socket, buf);
EDIT: Comment arrêter le thread lorsqu'un client se déconnecte ?
Partager