gpt4 book ai didi

networking - 游戏服务器应该如何以定义的滴答率接收 udp 数据包?

转载 作者:行者123 更新时间:2023-12-04 16:04:35 32 4
gpt4 key购买 nike

我目前有一个具有可自定义滴答率的游戏服务器,但在本示例中,我们建议服务器每秒仅滴答一次或 1hz。我想知道如果客户端发送速率比服务器快,因为我当前的设置似乎不起作用,那么处理传入数据包的最佳方法是什么。

我的 udp 阻塞接收在我的滴答函数内有一个超时,它可以工作,但是如果客户端滴答率高于服务器,则不会收到所有数据包;只有当前正在读取的那个。所以本质上服务器缺少客户端发送的数据包。下图展示了我的问题。

enter image description here

所以我的问题是,这是如何正确完成的?是否有一个单独的线程,不断读取数据包,排队,然后在服务器滴答时处理队列,或者有更好的方法吗?

图片取自视频 https://www.youtube.com/watch?v=KA43TocEAWs&t=7s但恰恰说明了我在解释什么
enter image description here

最佳答案

您的服务器可能必须有一个线程每 5 秒打勾一次,就像客户端接收所有数据包一样。在该滴答期间未收到的任何内容都将被丢弃,因为服务器未在监听它。然后,您可以在 5 个滴答后将数据作为一个块从线程传递到服务器。更可靠的选择是将服务器设置为 5hz,就像客户端和线程每个来自客户端的数据包一样,这样它就不会锁定主线程。

例如,如果客户端更新率为 20,而服务器滴答率为 64,则客户端可能会在 20 滴答服务器上播放。

关于networking - 游戏服务器应该如何以定义的滴答率接收 udp 数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51903487/

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