Подтвердить что ты не робот

Как проверить скорость интернета (JavaSE)?

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

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

Спасибо заранее...

4b9b3361

Ответ 1

Посмотрите здесь, как ping в 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 МБ.

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

Ответ 2

используйте Библиотека 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());
    }
});