Как получить интервал времени, в течение которого отправляется и принимается запрос ping

#java #ping

#java #ping

Вопрос:

Мне нужно выполнить несколько тестов для используемого нами эмулятора, и для этого мне нужно проверить указанную задержку RTT. Иногда задержка RTT увеличивается в 10 раз, и в это время мне нужно проверить, действительно ли это правильно. Например, если в журнале эмулятора указано, что в момент времени X значение RTT установлено равным 400 мс, тогда я могу увидеть подтверждение этого с помощью реального приложения, которое подключено к сети эмулятора. Лучший способ сделать это — использовать ping с временными метками. Есть ли какие-либо способы указать, когда был отправлен запрос ping, и какова задержка? Или не стесняйтесь предлагать любые другие методы в моем тестовом примере.

У меня есть реализация Java только для отправки запросов ping!

 public static void main(String[] args) throws UnknownHostException, IOException {
    String ipAddress = "127.0.0.1";
    InetAddress inet = InetAddress.getByName(ipAddress);

    System.out.println("Sending Ping Request to "   ipAddress);
    System.out.println(inet.isReachable(5000));
}
 

Комментарии:

1. Рассмотрите возможность вызова isReachable с постоянно увеличивающимися значениями времени ожидания, пока не будет достигнут успех.

Ответ №1:

 String ipAddress = "127.0.0.1";
InetAddress inet = InetAddress.getByName(ipAddress);   
System.out.println("Sending Ping Request to "   ipAddress);
int uptime = (int) System.currentTimeMillis();
System.out.println((inet.isReachable(5000) ? ((int) System.currentTimeMillis() -    uptime) "ms" : "Request timed out"));