Java网络程序;(滞后问题)
我做了一个实时游戏,它现在非常滞后。 我看到,对于实时游戏,我使用“UDP协议”而不是“TCP”编写代码 这能解决滞后问题吗?以“UDP”形式更改我的代码真的很难吗 谢谢大家!Java网络程序;(滞后问题),java,networking,tcp,udp,Java,Networking,Tcp,Udp,我做了一个实时游戏,它现在非常滞后。 我看到,对于实时游戏,我使用“UDP协议”而不是“TCP”编写代码 这能解决滞后问题吗?以“UDP”形式更改我的代码真的很难吗 谢谢大家! 这能解决滞后问题吗? UDP协议比TCP快一点,因为它缺少两个附加值: 这是不可靠的-它不检查数据包是否成功到达。如果出现网络问题,数据包可能会丢失 它也不能保证数据包是否按顺序到达 当一切正常时(确认正确传递所需的额外握手消息),这些会产生较小的额外延迟;当网络出现错误时(额外重试数据包、接收器等待/重新排序),则
- 这是不可靠的-它不检查数据包是否成功到达。如果出现网络问题,数据包可能会丢失李>
- 它也不能保证数据包是否按顺序到达李>
对于游戏来说,你可能不需要这些额外的服务 你会注意到其中的区别吗?不一定 底层网络的速度、流量负载和网络路由器/交换机跳数对单个数据包的性能有很大影响。您可能没有注意到千兆本地局域网内的任何差异,但可能会看到无线网络之间的微小差异和互联网上的巨大差异。糟糕的路由器设置和繁忙的网络显然会让事情变得更糟 要了解网络路径并检查网络的速度和可靠性/错误,请使用
- 命令行
&ping
/traceroute
tracert
- 网络检查工具,例如或
java.net.Socket
和java.net.ServerSocket
usejava.net.DatagramSocket
x2
.flush()
您.write()
要写入的套接字?