Java 如何仅在一个协议上运行Kryonet服务器?
我目前正计划在我的游戏中使用Java网络库Kryonet。我将使用UDP协议,因为它比TCP更快。我喜欢Kryonet API,它的代码非常干净,但是它似乎只允许在TCP和UDP上运行服务器,而我只希望服务器在UDP上运行。我认为您不应该假设UDP比TCP“快”。TCP和数据包允许比旧的只使用TCP滑动窗口的系统更快的重传请求,并且增强功能使对等方更容易以接近网络可以处理的最大速度进行通信。(UDP将继续发送数据,而忽略导致丢包的拥塞。)Java 如何仅在一个协议上运行Kryonet服务器?,java,udp,kryo,Java,Udp,Kryo,我目前正计划在我的游戏中使用Java网络库Kryonet。我将使用UDP协议,因为它比TCP更快。我喜欢Kryonet API,它的代码非常干净,但是它似乎只允许在TCP和UDP上运行服务器,而我只希望服务器在UDP上运行。我认为您不应该假设UDP比TCP“快”。TCP和数据包允许比旧的只使用TCP滑动窗口的系统更快的重传请求,并且增强功能使对等方更容易以接近网络可以处理的最大速度进行通信。(UDP将继续发送数据,而忽略导致丢包的拥塞。) 测试多个目标对等点之间的带宽、延迟和数据包丢失,看看哪一
测试多个目标对等点之间的带宽、延迟和数据包丢失,看看哪一个性能更好。我敢打赌结果几乎是一样的。我认为你不应该假设UDP比TCP“快”。TCP和数据包允许比旧的只使用TCP滑动窗口的系统更快的重传请求,并且增强功能使对等方更容易以接近网络可以处理的最大速度进行通信。(UDP将继续发送数据,而忽略导致丢包的拥塞。)
测试多个目标对等点之间的带宽、延迟和数据包丢失,看看哪一个性能更好。我敢打赌结果几乎是一样的。对于一款与FPS类似的实时游戏,你是说它将以相对相同的速度运行?啊,所有客户都支持吗,我假设Kryonet支持同时运行TCP和UDP的服务器,因为它们的客户端绑定也可以在这两种环境下工作。是的,对于任何一种类型的客户端连接,运行两者的FPS应该以大约相同的速度运行。事实上,由于每个UDP数据包都可能丢失或无序传递,服务器可能需要在每个数据包中包含更多冗余数据,以允许客户端在丢失一些数据包后“赶上”。TCP流不需要发送冗余数据,因为客户端将按顺序获取所有数据,尽管可能偶尔会增加100毫秒的重传。对于实时游戏,类似于FPS,您是说它将以相对相同的速度运行?啊,所有客户端都支持这一点吗,我假设Kryonet支持同时运行TCP和UDP的服务器,因为它们的客户端绑定也可以在这两种环境下工作。是的,对于任何一种类型的客户端连接,运行两者的FPS应该以大约相同的速度运行。事实上,由于每个UDP数据包都可能丢失或无序传递,服务器可能需要在每个数据包中包含更多冗余数据,以允许客户端在丢失一些数据包后“赶上”。TCP流不需要发送冗余数据,因为客户机将按顺序获取所有数据,尽管有时重传可能会增加100ms。