gpt4 book ai didi

c++ - ENet 如何管理其到达的数据包?

转载 作者:太空狗 更新时间:2023-10-29 21:26:21 25 4
gpt4 key购买 nike

ENet 是一个 UDP 网络库,此处提供教程 http://enet.bespin.org/Tutorial.html

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

教程还说我可以用 0 超时调用这个函数,这意味着如果它不等待,它必须读取一个缓冲区...

最佳答案

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

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

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

关于c++ - ENet 如何管理其到达的数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11905714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com