Как проверить скорость интернета (JavaSE)? - PullRequest
11 голосов
/ 22 марта 2010

Есть ли способ проверить скорость интернета с помощью кода Java?

Например, например, как мы на самом деле тестируем команду cmd, команду ping.

Заранее спасибо ...

Ответы [ 2 ]

4 голосов
/ 22 марта 2010

Посмотрите здесь, как пинговать в java:

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).

Но вы должны изучить еще несколько вещей, чтобы получить правильное представление о скорости интернета:

  • проверить количество возможных подключений за 10 секунд
  • проверить, какЧтобы загрузить файл 5 МБ
  • , нужно проверить, сколько времени занимает загрузка файла 5 МБ

, что в сочетании с несколькими пингами должно дать вам достаточно хорошее представление о пропускной способности илатентность

0 голосов
/ 05 октября 2017

использование 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());
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...