Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java网络程序;(滞后问题)_Java_Networking_Tcp_Udp - Fatal编程技术网

Java网络程序;(滞后问题)

Java网络程序;(滞后问题),java,networking,tcp,udp,Java,Networking,Tcp,Udp,我做了一个实时游戏,它现在非常滞后。 我看到,对于实时游戏,我使用“UDP协议”而不是“TCP”编写代码 这能解决滞后问题吗?以“UDP”形式更改我的代码真的很难吗 谢谢大家! 这能解决滞后问题吗? UDP协议比TCP快一点,因为它缺少两个附加值: 这是不可靠的-它不检查数据包是否成功到达。如果出现网络问题,数据包可能会丢失 它也不能保证数据包是否按顺序到达 当一切正常时(确认正确传递所需的额外握手消息),这些会产生较小的额外延迟;当网络出现错误时(额外重试数据包、接收器等待/重新排序),则

我做了一个实时游戏,它现在非常滞后。 我看到,对于实时游戏,我使用“UDP协议”而不是“TCP”编写代码

这能解决滞后问题吗?以“UDP”形式更改我的代码真的很难吗

谢谢大家!

  • 这能解决滞后问题吗?

    UDP协议比TCP快一点,因为它缺少两个附加值:

    • 这是不可靠的-它不检查数据包是否成功到达。如果出现网络问题,数据包可能会丢失
    • 它也不能保证数据包是否按顺序到达
    当一切正常时(确认正确传递所需的额外握手消息),这些会产生较小的额外延迟;当网络出现错误时(额外重试数据包、接收器等待/重新排序),则会产生较大的延迟。
    对于游戏来说,你可能不需要这些额外的服务

    你会注意到其中的区别吗?不一定

    底层网络的速度、流量负载和网络路由器/交换机跳数对单个数据包的性能有很大影响。您可能没有注意到千兆本地局域网内的任何差异,但可能会看到无线网络之间的微小差异和互联网上的巨大差异。糟糕的路由器设置和繁忙的网络显然会让事情变得更糟

    要了解网络路径并检查网络的速度和可靠性/错误,请使用

    • 命令行
      ping
      &
      traceroute
      /
      tracert
    • 网络检查工具,例如或
    另见

  • 以“UDP”形式更改我的代码真的很难吗?

    没有

    不要使用
    java.net.Socket
    和j
    ava.net.ServerSocket
    use
    java.net.DatagramSocket
    x2

  • 您是否
    .flush()
    .write()
    要写入的套接字?