我做了一个实时游戏,现在它非常迟钝。 我看到实时游戏我用“UDP协议”编写代码,而不是“TCP”
这会解决滞后问题吗?以“UDP”形式更改我的代码真的很难吗?
谢谢!
答案 0 :(得分:0)
这会解决滞后问题吗?
UDP协议比TCP快一点,因为它缺少一些增值附加功能:
当一切正常时(确认正确传送所需的额外握手消息)和网络上存在错误时的较大延迟(额外重试数据包,接收器等待/重新排序)时,这会产生一个小的额外延迟。
对于游戏,您可能不需要这些额外服务。
你肯定会注意到这种差异吗?不必要。
底层网络的速度,流量负载和网络路由器/交换机跳数对单个数据包性能有很大影响。您可能没有注意到千兆位本地局域网中存在任何差异,但可能会看到无线网络之间存在细微差别,并且互联网上存在巨大差异。糟糕的路由器设置和繁忙的网络显然会让事情变得更糟
了解您的网络路径并检查速度和速度。网络上的可靠性/错误,请使用
ping
& traceroute
/ tracert
以“UDP”格式更改代码真的很难吗?
没有
使用java.net.Socket
x 2而不是ava.net.ServerSocket
和j java.net.DatagramSocket
。
http://docs.oracle.com/javase/tutorial/networking/datagrams/clientServer.html