gpt4 book ai didi

安卓游戏UDP/TCP?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:53 26 4
gpt4 key购买 nike

我看到之前有人问过这个问题,但问题的背景通常很模糊。我正在寻找构建一个 Android 多人实时游戏,其中存在需要在所有客户端之间共享的全局状态。因此,我倾向于认为 UDP 可能还不够。 TCP 提供可靠性,但具有固有的开销。但是,由于这是我第一次解决此类问题,因此我正在寻找其他人的经验反馈。

因此,(通常)在 Android 智能手机上的多人实时游戏环境中,与 TCP 相关的开销是否足够可接受,以至于用户体验不会受到如此不利的影响?另外值得一提的是,TCP 连接必须是持久连接。另外,UDP 加上一些可靠的定制开发机制会是更好的方法吗?任何输入都会真正帮助我并且将不胜感激。

非常感谢

最佳答案

最好的答案可能是“试试看”。

我认为 TCP 开销对于大多数应用程序来说并不是什么大问题。 header 大小大约大 10 个字节,并且必须为每条消息来回发送确认消息。

实时游戏的真正 killer 将是延迟。 UDP 是即发即弃的。这意味着每条消息仅滞后于两个节点之间的传输时间。由于 TCP 需要确认,因此在对方收到回音之前,消息不会真正被视为“已发送”。

通常,它们之间的问题归结为错误检测。如果消息以某种方式在互联网中丢失,您希望如何处理它?如果每条消息都相当重要,那么如果您使用 UDP,您最终将不得不在它之上实现您自己的类似 TCP 的协议(protocol)。你还不如用TCP,让网络硬件来帮你。但是,如果旧消息在经过多次重试(每次重试都处于网络延迟)之后随着新更新的到来而变成垃圾,那么 TCP 对您来说就是在浪费带宽。

关于安卓游戏UDP/TCP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4935424/

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