考虑到 UDP 数据包可能会丢失或延迟到达目标目的地,是否更有意义:
将 TCP 套接字用于重要的消息和事件(例如:在游戏中,玩家被击中、攻击、死亡、捡起物品、拯救公主等),
或者...是否应该在您的 UDP 数据包结构中开发某种“可靠性系统”以确认这些特定事件的接收?
似乎,至少,对于 TCP 在 UDP 上的几个字节差异(64b 与 52b 的最小值,因此相距 12b,根据这个答案:https : //stackoverflow.com/a/1846139/468206)它让 TCP 连接处理这些事件而不是在 UDP 中重新发明轮子会更有意义。但也许我没有抓住重点?
长期保持 TCP 连接/应用程序/游戏的持续时间(假设至少 15 分钟)是否会应用一些不易减少或控制的开销以及定制的“可靠”UDP执行?
UDP 中的字节节省是否会更明显,因为例如,所讨论的可靠事件消息可能带有一些不可靠的数据?(不可靠的数据 = 基本上任何通常会忽略发送额外“可靠性”字节的数据,使用即发即弃的方法)?
注意:我可能忘记或没有考虑 TCP 的某些方面,这就是为什么我联系您可爱的经验丰富的网络开发人员,以帮助提出这一点并将其带回家!:)