GLUT: eine Möglichkeit, eine „Datei lesbar“ Haken an der Ereignisschleife hinzufügen?

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

  •  06-07-2019
  •  | 
  •  

Frage

Ich mag eine Steckdose öffnen und ein lesbares Ereignis auf der GLUT Ereignisschleife hängen ... irgendwelche Ideen, wie dies zu tun? Tragbare Standard GLUT-Code ist am besten, aber ich bin offen für plattformspezifischen Hacks auch.

Danke!

War es hilfreich?

Lösung

GLUT ist dies nicht sehr gut unterstützen. Siehe GLUT FAQ # 18

Sie können eine Leerlauffunktion mit glutIdleFunc, und in der Leerlauffunktion abfragen Ihre Steckdose registrieren, um zu sehen, ob neue Daten zur Verfügung steht. Um eine Blockade zu vermeiden, wenn Sie aus Ihrer Steckdose lesen, müssen Sie Ihre Steckdose setzen nicht blockierend sein durch den Aufruf:

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

(Aus Beej Guide to Networking )

Der Nachteil dieses Ansatzes ist, dass Ihr App wird den Socket-Zustand 60 mal pro Sekunde werden überprüft, anstatt nur darauf warten, für Netzwerkdaten zu kommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top