0
나는 소켓을 열고 GLUT 이벤트 루프에서 읽을 수있는 이벤트를 걸고 싶습니다 ... 어떻게하는지에 대한 아이디어가 있습니까? 휴대용 표준 GLUT 코드가 가장 좋지만 플랫폼 관련 해킹도 가능합니다.GLUT : "파일을 읽을 수있는"후크를 이벤트 루프에 추가하는 방법은 무엇입니까?
감사합니다.
나는 소켓을 열고 GLUT 이벤트 루프에서 읽을 수있는 이벤트를 걸고 싶습니다 ... 어떻게하는지에 대한 아이디어가 있습니까? 휴대용 표준 GLUT 코드가 가장 좋지만 플랫폼 관련 해킹도 가능합니다.GLUT : "파일을 읽을 수있는"후크를 이벤트 루프에 추가하는 방법은 무엇입니까?
감사합니다.
GLUT는 이것을 아주 잘 지원하지 않습니다. GLUT FAQ #18
유휴 기능을 glutIdleFunc에 등록 할 수 있으며 유휴 기능에서 소켓을 폴링하여 사용 가능한 새 데이터가 있는지 확인하십시오. 당신이 당신의 소켓에서 읽을 때 차단 방지하기 위해, 당신은 호출하여 비 차단 할 수 있도록 소켓을 설정해야합니다
#include <unistd.h>
#include <fcntl.h>
...
sockfd = socket(PF_INET, SOCK_STREAM, 0);
fcntl(sockfd, F_SETFL, O_NONBLOCK);
이 방법의 단점이 있다는 것입니다 (Beej's Guide to Networking에서 촬영) 귀하 응용 프로그램은 네트워크 데이터가 들어 오기를 기다리는 대신 초당 60 번 소켓 상태를 검사합니다.
select (2) 함수를 사용하여 소켓에 데이터가 있는지 테스트 할 수 있습니다. http://linux.die.net/man/2/select의 매뉴얼 페이지를 참조하십시오. –