Bonjour tlm,
Je suis en train de d�velopper un client C++ avec une interface graphique OpenGL qui doit communiquer avec un serveur UT2003 via le protocole UDP. J'arrive a faire communiquer les deux de maniere basique grace aux sockets.
En revanche un probleme se pr�sente : la fonction que j'utilise sur le client pour recevoir les datagrammes (recvfrom) est "bloquante". J'entends par la que si j'apelle cette fonction elle va attendre de recevoir un message. Ceci est tres genant car si je ne recois pas de messages, le programme va attendre pour rien.
Pour le moment le client demande, par exemple, constamment le nom de la map courante et le serveur renvoie l'information. Il serait plus judicieux d'envoyer le nom de la map uniquement lorsque le serveur change ...
Pour r�soudre le probleme, j'ai donc d�cid� d'utiliser les threads et d'en utiliser un seul pour la r�ception dans mon client. Voici en gros mon id�e :
-> Faire un thread qui apelle une fonction dans laquelle se trouve une boucle sans fin. Dans cette boucle, je dois recevoir uniquement les messages qui arrivent. Ensuite soit je traite le message tout de suite, soit je cr�e une liste ou je peux les ajouter. Lorsque les messages seront traites, il iront compl�ter une classe GameInfo avec des informations sur la map et les joueurs.
Est-ce une bonne solution ?
Nico.
Partager