用于检查Internet速度的Java API(上传/下载)

问题描述 投票:0回答:3

我正在用Java构建应用程序,在https://speedtest.net类站点中,我需要了解下载/上传速度。是否有任何API / java内置方法可以用来获取速度。谢谢!

java download upload bandwidth
3个回答
0
投票

这里您有12个存储库来解决您的问题。 internet-speed-checker


0
投票

您可以使用JSpeedTest

JSpeedTest
  • HTTP下载:
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());
    }
});
  • HTTP上传:
speedTestSocket.startDownload("http://ipv4.ikoula.testdebit.info/1M.iso");
  • HTTP固定持续时间下载:
speedTestSocket.startUpload("http://ipv4.ikoula.testdebit.info/", 1000000);
  • HTTP固定持续时间上传:
speedTestSocket.startFixedDownload("http://ipv4.ikoula.testdebit.info/100M.iso", 10000);

Maven依赖项:

speedTestSocket.startFixedUpload("http://ipv4.ikoula.testdebit.info/", 10000000, 10000);

0
投票

我不认为已经有现成的API用于此。

此解决方案的设置是客户端-服务器设计

  1. 开始测试(客户端向服务器请求文件URI及其大小)
  2. 服务器响应客户端以要下载的文件大小及其URI
  3. 客户端使用URI请求文件(启动计时器)
  4. 客户端发布有关完成多少下载的定期事件
  5. 文件下载完成后,客户端检查下载是否完成(停止计时器)
  6. 计算下载所述大小的文件所需的时间(停止-开始)-可以说这是时间<!-- https://mvnrepository.com/artifact/fr.bmartel/jspeedtest --> <dependency> <groupId>fr.bmartel</groupId> <artifactId>jspeedtest</artifactId> <version>1.32.1</version> </dependency>
  7. 客户端现在根据下载的文件大小和下载文件所花费的时间来计算速度。

您也可以让客户端定期进行此计算,并显示客户端在每个更新事件上的速度。

希望这会有所帮助。 :)

© www.soinside.com 2019 - 2024. All rights reserved.