-
SDL et sockets
salut les amis j'ai fais un jeu qui compose 2 équipe et j'ai ajouter l'option de jouer en réseau mais là j'ai un problème
d'abord l'équipe 1 joue et envoi les instructions et les scores à l'équipe 2 et après c'est le tour de l'équipe 2
je crois que le problème est dans l'équipe qui attend ou plutôt dans la primitive revc() car quand je clique sur la fenêtre de l'équipe qui attend avec recv() la fenêtre se bloque mais le jeu continue c'est juste la fenêtre qui se bloque car dans la console correspondante à la fenêtre bloquée il y a toujours l'exécution normal (des printf() pour vérifier) !!
alors comment empêcher se blocage ?
-
Bonjour,
Je suppose que la gestion des sockets et que l'affichage sont dans le même thread.
On a plusieurs approches :
- Séparer l'affichage et la communication dans deux threads différents ;
- Passer les sockets en mode non-bloquant (voir ici);
- On peut aussi imaginer laisser un temps d'attente pour la réception du message (voir là).
La première solution est ma préférée car elle permet d'éviter de mélanger les différents thèmes du programme.