首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ENet如何管理它到达的数据包?

ENet如何管理它到达的数据包?
EN

Stack Overflow用户
提问于 2012-08-10 16:29:46
回答 1查看 1.2K关注 0票数 4

ENet是UDP网络库,这里有教程http://enet.bespin.org/Tutorial.html

如果我在一段时间内没有调用enet_host_service(),但是数据包到达机器,而我没有“服务”,会发生什么情况?它们是否在某处缓冲,等待对enet_host_service()的调用?

本教程还指出,我可以在0超时的情况下调用这个函数,这意味着如果它不等待,它必须读取一个缓冲区.

EN

回答 1

Stack Overflow用户

发布于 2012-11-18 10:06:59

我非常肯定,在调用enet_host_service()之前,数据包将在操作系统中进行缓冲,因为在此之前,enet根本无法执行任何操作。它完全死了,只要您自己的代码正在运行,它的状态就不会改变。

当您调用enet_host_service()时,它将使用socket从操作系统检索UDP数据包,然后,它们可能会由enet本身缓冲(如果有多个“事件”或“数据包”),因为enet_host_service()允许您一次处理一个事件(而它很可能从操作系统的数据中接收多个事件)。

因此,您应该尽可能频繁地调用enet_host_service(),因为当它的缓冲区已满时,操作系统只会丢弃传入的数据包。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11905714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档