【发布时间】:2020-09-02 10:15:52
【问题描述】:
我正在用 Java 构建一个应用程序,当我们进入 https://speedtest.net 类型的站点时,我需要知道下载/上传速度。 是否有任何 API/java 内置方法可以让我获得速度。 谢谢!
【问题讨论】:
标签: java download upload bandwidth
我正在用 Java 构建一个应用程序,当我们进入 https://speedtest.net 类型的站点时,我需要知道下载/上传速度。 是否有任何 API/java 内置方法可以让我获得速度。 谢谢!
【问题讨论】:
标签: java download upload bandwidth
你可以使用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 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 bit/s : " + report.getTransferRateBit());
}
});
speedTestSocket.startDownload("http://ipv4.ikoula.testdebit.info/1M.iso");
speedTestSocket.startUpload("http://ipv4.ikoula.testdebit.info/", 1000000);
speedTestSocket.startFixedDownload("http://ipv4.ikoula.testdebit.info/100M.iso", 10000);
speedTestSocket.startFixedUpload("http://ipv4.ikoula.testdebit.info/", 10000000, 10000);
样本输出:
[PROGRESS] progress : 0.1223%
[PROGRESS] rate in bit/s : 4253913.0432
[PROGRESS] progress : 1.2903%
[PROGRESS] rate in bit/s : 18768000.0000
[PROGRESS] progress : 1.4363%
[PROGRESS] rate in bit/s : 19150666.6664
.
.
.
[PROGRESS] progress : 98.6723%
[PROGRESS] rate in bit/s : 11584655.1216
[PROGRESS] progress : 99.2563%
[PROGRESS] rate in bit/s : 11651509.9048
[PROGRESS] progress : 100.0%
[PROGRESS] rate in bit/s : 11694196.7552
[COMPLETED] rate in bit/s : 11690778.8984
Maven 依赖:
<!-- https://mvnrepository.com/artifact/fr.bmartel/jspeedtest -->
<dependency>
<groupId>fr.bmartel</groupId>
<artifactId>jspeedtest</artifactId>
<version>1.32.1</version>
</dependency>
【讨论】:
我认为没有现成的 API。
此解决方案的设置是客户端-服务器设计
T
您也可以让客户端定期进行此计算,并显示客户端在每次更新事件中所经历的速度。
希望这会有所帮助。 :)
【讨论】: