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) 个答案