有没有办法使用Java代码测试互联网速度?
例如,就像我们用cmd命令实际测试一样,ping命令。
提前致谢...
答案 0 :(得分:4)
在这里看看如何在java中ping:
http://blog.taragana.com/index.php/archive/how-to-do-icmp-ping-in-java-jdk-15-and-above/
正如另一个家伙所说,这不是一个完美的解决方案,我调查了我们的代码库,因为我知道我们在这里使用ICMP数据包做了些什么:
http://www.savarese.com/software/rocksaw/
这意味着您必须编译一些JNI C才能访问rawsocket(win32和linux)。
但是你应该考虑更多的事情来获得关于互联网速度的提议:
与少量ping相结合可以给你带来很好的带宽和延迟效果
答案 1 :(得分:0)
使用 JSpeedTest 库
SpeedTestSocket speedTestSocket = new SpeedTestSocket();
// add a listener to wait for speedtest completion and progress
speedTestSocket.addSpeedTestListener(new ISpeedTestListener() {
@Override
public void onCompletion(SpeedTestReport report) {
// called when download/upload is complete
System.out.println("[COMPLETED] rate in octet/s : " + report.getTransferRateOctet());
System.out.println("[COMPLETED] rate in bit/s : " + report.getTransferRateBit());
}
@Override
public void onError(SpeedTestError speedTestError, String errorMessage) {
// called when a download/upload error occur
}
@Override
public void onProgress(float percent, SpeedTestReport report) {
// called to notify download/upload progress
System.out.println("[PROGRESS] progress : " + percent + "%");
System.out.println("[PROGRESS] rate in octet/s : " + report.getTransferRateOctet());
System.out.println("[PROGRESS] rate in bit/s : " + report.getTransferRateBit());
}
});