我目前计划在我的游戏中使用 Java 网络库 Kryonet。我将使用 UDP 协议(protocol),因为它比 TCP 更快。我喜欢 Kryonet API,它的代码非常干净,但是当我只希望服务器在 UDP 上运行时,它似乎只允许在 TCP 和 UDP 上运行服务器。
最佳答案
我认为您不应该假设 UDP 比 TCP“更快”。 TCP SACK和NACK与旧的 TCP 仅滑动窗口系统相比,数据包允许更快的重传请求,并且 Explicit Congestion Notification增强功能使对等方可以更轻松地以接近网络可以处理的最大速度进行通信。 (UDP 将继续发送数据,而不会注意到导致数据包丢失的拥塞。)
测试多个目标对等点之间的带宽、延迟和数据包丢失,看看哪一个性能更好。我敢打赌结果几乎是一样的。
关于java - 如何仅在一种协议(protocol)上运行 Kryonet 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8110738/