ping 명령 옆에 할 수있는 방법 :, IP 주소와 자바의 왕복 시간을 계산 나는 다음과 같은 코드로 유닉스 시스템에서 자바의 RTT를 얻을 수있는 방법 구현했습니다
String command[] = {"ping", "-c4", theIPAddress};
ProcessBuilder pb = new ProcessBuilder(command);
pb.redirectErrorStream(true);
Process p = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line = in.readLine()) != null)
//the terminal output with the ping results...
etc...
이를 잘 작동하고 출력과 함께 ms 단위로 RTT (지연)를 계산할 수 있습니다. 그러나 호스트가 ICMP를 차단하면 ping이 시간 초과됩니다. (Mac OS X 터미널이나 Windows CMD에서도 마찬가지입니다.)
이제 어떻게 든 IP 주소에 대한 RTT/지연을 얻는 다른 방법을 찾고 싶습니다. (나는 호스트 측에 소프트웨어를 설치하고 싶지 않다.) Java 예제를 제공 할 수 없다면, 다른 입력을 해주시기 바랍니다. 여러 언어로 번역 할 수 있으며 실제로 Google을 사용할 수 있습니다.
'InetAddress.isReachable'은 (는 ICMP에 대한 리눅스에 뿌리를해야 할 수도 있지만 TCP 대신에 사용하고있다). 가장 좋은 방법은 정상적인 TCP 소켓을 여는 것이다. – bestsss
이미 isReachable을 시도했지만 비참하게 실패합니다. 핑보다 훨씬 더. 소켓을 열면 해결책이 될 수도 있지만 특정 포트를 연결해야합니다. – Gianni