#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"));