GLUT: un moyen d'ajouter un hook «lisible par un fichier» à la boucle d'événement?

StackOverflow https://stackoverflow.com/questions/185033

  •  06-07-2019
  •  | 
  •  

Question

Je voudrais ouvrir un socket et accrocher un événement lisible à la boucle d’événements GLUT ... des idées sur la façon de procéder? Le code GLUT standard portable est préférable, mais je suis également ouvert aux hacks spécifiques à la plate-forme.

Merci!

Était-ce utile?

La solution

GLUT ne supporte pas cela très bien. Voir GLUT FAQ n ° 18

.

Vous pouvez enregistrer une fonction inactive avec glutIdleFunc et, dans la fonction inactive, interrogez votre socket pour savoir si de nouvelles données sont disponibles. Pour éviter le blocage lorsque vous lisez votre socket, vous devez définir votre socket comme étant non bloquant en appelant:

#include <unistd.h>
#include <fcntl.h>
...
sockfd = socket(PF_INET, SOCK_STREAM, 0);
fcntl(sockfd, F_SETFL, O_NONBLOCK);

(Tiré du Guide de mise en réseau de Beej )

L’inconvénient de cette approche est que votre application vérifie l’état du socket 60 fois par seconde au lieu d’attendre que des données réseau soient reçues.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top