2010-01-15 2 views

답변

1

당신이 간헐적으로 Google과 같은 알려진 호스트에 HTTP 연결을 테스트하고 검색 할 수 있습니다 ConnectionExceptions

일반적으로
URLConnection con = new URL("http://www.google.com/").openConnection(); 
con.setUseCaches(false); 
con.setAllowUserInteraction(false); 

while(true) 
{ 
    try 
    { 
     con.connect(); 
     con.getContentType(); // just to make sure the connection works 
     // sleep for some interval 
    } 
    catch(IOException e) 
    { 
     // handle and break 
    } 
} 
+0

나는 downvoter가 더 나은 해결책이 있다고 가정합니까? – pstanton

1

, 100 % 자바의 정확성에 "파손"을 감지하고 네트워크를 진단 할 수 없습니다 다른 언어로. 실제로, 무엇이 "파손"을 구성하는지 분명하지 않습니다. URL에 가짜 DNS 이름이나 IP 주소를 입력하면 즐겨 찾는 웹 브라우저에서 막연한 오류 메시지를 표시하는 이유입니다.

  • 내 컴퓨터의 전원 플러그를 빼지 :

    문제는 네트워크의 상호 작용 실패의 원인이 무엇인지 알 수없는 여러 상황이 있다는 것입니다?

  • 는 내 로컬 네트워크에서 재촉하고 있나요?
  • 에 정전이 발생하여 ISP 네트워크가 다운 되었습니까?
  • 은 인터넷 라우팅 불안정으로 인해 내 패킷이 Turkmanistan으로 라우팅됩니다.
  • 은 Google 다운 ... 또는 러시아 해킹 군중에 의해 저지 당했습니까?

이러한 상황 중 다수는 진단하기가 어렵습니다. Java가 ICMP 패킷을 보내는 것과 같은 일을하기위한 표준 API를 제공하지 않기 때문에 Java로 상황을 진단하는 것은 어렵습니다. 기본적으로 소켓 연결 시도가 실패 할 때 되돌려주는 Java 예외를 해석하려고 시도하는 것으로 제한됩니다.

IMO, 가장 좋은 방법은 'ping'및 'traceroute'와 같은 기존 명령 줄 도구를 사용하고 찻잎을 읽는 방법을 배우는 것입니다. 또는 너무 어려울 경우 네트워크 진단을 전문가에게 맡기십시오.

관련 문제