java - 如何仅在一种协议(protocol)上运行 Kryonet 服务器?

标签 java udp kryo

我目前计划在我的游戏中使用 Java 网络库 Kryonet。我将使用 UDP 协议(protocol),因为它比 TCP 更快。我喜欢 Kryonet API,它的代码非常干净,但是当我只希望服务器在 UDP 上运行时,它似乎只允许在 TCP 和 UDP 上运行服务器。

最佳答案

我认为您不应该假设 UDP 比 TCP“更快”。 TCP SACKNACK与旧的 TCP 仅滑动窗口系统相比,数据包允许更快的重传请求,并且 Explicit Congestion Notification增强功能使对等方可以更轻松地以接近网络可以处理的最大速度进行通信。 (UDP 将继续发送数据,而不会注意到导致数据包丢失的拥塞。)

测试多个目标对等点之间的带宽、延迟和数据包丢失,看看哪一个性能更好。我敢打赌结果几乎是一样的。

关于java - 如何仅在一种协议(protocol)上运行 Kryonet 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8110738/

相关文章:

java - 如果数字 A 高于数字 B,则继续询问数字 A 上较低的用户输入

java - 如何在 Android 中恢复我的音频?

Linux UDP 最大接收缓冲区大小

scala - 如何在 spark-shell 中注册 kryo 类

java - kryo 序列化是否适用于不可序列化的类并且类具有不可序列化的属性?

java.lang.NoSuchMethodException : userAuth. User.<init>()

java - JPA:@ElementCollection 和 InheritanceType.TABLE_PER_CLASS -> 重复的列名

java - 如何在android中建立UDP连接

c - 如何为实时流媒体编码视频文件并通过 UDP 数据报传送

scala - Spark 流 : com. esotericsoftware.kryo.KryoException : java. lang.IllegalArgumentException : Class is not registered: scala. Tuple2$mcJZ$sp