我正在用 Java 制作多人游戏,并且正在使用 tcp 连接进行客户端/服务器通信。我试图优化传输,使其仅在游戏发生变化时发送数据包,搜索问题,在每次传输后刷新对象流和套接字,并将 setTcpNoDelay 设置为 true。但是我仍然可以看到延迟,有时传入的数据包会停顿几秒钟(有时永远(或者我没有尝试等待的很长一段时间)),直到发送另一个数据包(听起来像缓冲给我)。我没有在局域网上测试它,只是在我的本地主机上。我知道 Minecraft 是用 Java 编写的,它运行良好,延迟最小,所以必须有办法解决这个问题......
我可以实施任何其他技巧来加快 tcp 客户端/服务器通信吗?
编辑:玩家实例包括玩家速度,因此在两个传入数据包之间,游戏以最后已知速度从最后一个已知位置运行其他玩家。