Есть ли способ проверить скорость интернета с помощью Java-кода?
Например, как мы на самом деле проверяем команду cmd, команду ping.
Спасибо заранее...
Есть ли способ проверить скорость интернета с помощью Java-кода?
Например, как мы на самом деле проверяем команду cmd, команду ping.
Спасибо заранее...
Посмотрите здесь, как 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).
Но вы должны изучить еще несколько вещей, чтобы получить представление о скорости интернет-рекламы:
что в сочетании с несколькими пингами должно дать вам довольно хорошее впечатление о полосе пропускания и задержке
используйте Библиотека 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());
}
});