GLUT:任何添加“文件可读”的方法 挂钩到事件循环?
我想打开一个套接字并在 GLUT 事件循环上挂起一个可读事件...关于如何执行此操作有什么想法吗? 可移植的标准 GLUT 代码是最好的,但我也愿意接受特定于平台的黑客攻击。
谢谢!
I'd like to open a socket and hang a readable event on the GLUT event loop... any ideas on how to do this? Portable standard GLUT code is best, but I'm open to platform-specific hacks as well.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
GLUT 不能很好地支持这一点。 请参阅 GLUT FAQ #18
您可以使用 glutIdleFunc 注册一个空闲函数,并在空闲函数中轮询您的套接字以查看是否有新数据可用。 为了避免从套接字读取数据时发生阻塞,您需要通过调用将套接字设置为非阻塞:(
摘自 Beej 网络指南)
这种方法的缺点是您的应用程序将每秒检查套接字状态 60 次,而不是仅仅等待网络数据进来。
GLUT doesn't support this very well. See GLUT FAQ #18
You could register an idle function with glutIdleFunc, and in the idle function poll your socket to see if there's new data available. In order to avoid blocking when you read from your socket, you need to set your socket to be non-blocking by calling:
(Taken from Beej's Guide to Networking)
The drawback of this approach is that your app will be checking the socket state 60 times a second, rather than just waiting for network data to come in.