InetAddress
클래스의 isReachable
메서드로 이상한 동작이 나타납니다.InetAddress isReachable 메서드에 최소 시간 제한이 있습니까?
Method prototype은 다음과 같습니다 대상 IP는 물론 도달 할 수없는 경우
public boolean isReachable(int timeout)
- 타임 아웃> 1500 (MS)를 사용하여는 방법은 (인수로 주어진 정확한 시간 을 기다립니다 ..).
- 시간 제한 < 1500를 사용하는 방법은이 코드는 매우 간단합니다 1000MS 최대 ...
을 기다립니다 :
InetAddress addr = null;
String ip = "10.48.2.169";
try {
addr = InetAddress.getByName(ip);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Timestamp s = new Timestamp(System.currentTimeMillis());
System.out.println(s + "\t Starting tests :");
pingTest(addr, 100);
pingTest(addr, 500);
pingTest(addr, 1000);
pingTest(addr, 1500);
pingTest(addr, 2000);
pingTest(addr, 2500);
pingTest에 의해 정의된다
:
public static void pingTest(InetAddress addr, int timeout) {
boolean result = false;
try {
result = addr.isReachable(timeout);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Timestamp s = new Timestamp(System.currentTimeMillis());
System.out.println(s + "\t (" + timeout + ") " + addr.toString() + " " + result);
}
그러면 출력은
입니다.2017-09-07 16:45:41.573 Starting tests :
2017-09-07 16:45:42.542 (100) /10.48.2.169 false
2017-09-07 16:45:43.542 (500) /10.48.2.169 false
2017-09-07 16:45:44.541 (1000) /10.48.2.169 false
2017-09-07 16:45:46.041 (1500) /10.48.2.169 false
2017-09-07 16:45:48.041 (2000) /10.48.2.169 false
2017-09-07 16:45:50.541 (2500) /10.48.2.169 false
그래서 질문 : InetAddress isReachable 메서드에 최소 시간 제한이 있습니까?이 충분히 명확하지 않은 경우
이 말해 ...아니면 그냥 난 아직도 그리워 큰 실수를 (... 내가 큰 시간 제한을 의심하지만, 내 의심의 여지 1500 등) .
도움과 의견을 보내 주셔서 감사합니다.
사용자가 문서화되지 않은 최소 시간 초과 ("최소"검색)를보고하는이 OpenJDK [버그 리포트] (https://bugs.openjdk.java.net/browse/JDK-8143397)를보십시오. 이 보고서는 확정적인 것은 아니지만 귀하의 경험을 뒷받침하는 데 도움이 될 수 있습니다. – MarsAtomic