有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何获得internet连接延迟/ping?

我需要以毫秒为单位获取当前internet连接延迟。在对堆栈溢出进行研究后,我发现以下代码可以获取延迟:

            String host = "www.google.com";
            int timeout = 10000;
            long beforeTime = System.currentTimeMillis();
            boolean reachable =  InetAddress.getByName(host).isReachable(timeout);
            long afterTime = System.currentTimeMillis();
            long latency = afterTime - beforeTime;

我还尝试了8.8.8.8,这是谷歌DNS IP,结果是一样的

问题在于latency变量在某些设备中非常大,异常值,例如,从2014年开始,在安卓 5.0的慢速设备中,像素XL有时为60毫秒,有时为400毫秒,并且始终在3000毫秒左右。另外,模拟器中的时间总是在6000毫秒左右,但我认为模拟器没有给出正确的值

在Android 5.0的设备中,该代码返回的延迟约为3000毫秒,当我打开www.google.com时,速度非常快,如果我在设备的导航器中尝试各种在线互联网连接测试,延迟为30毫秒,因此这3000毫秒的延迟是错误的其他设备也一样

如何在Android中正确测量延迟


共 (0) 个答案