2012-03-07 16 views
0

나는 자바 코드를 보내고 ntp 서버로부터 응답을 받기를 원한다. 그러나, 내가 프록시 뒤에 있기 때문에 나는 어떤 응답도받을 수 없다. 프록시를 통해 서버 응답에 어떻게 액세스합니까? 나는 다음 코드를 사용하고 있지만,별로 도움이되지 않는다.자바에서 프록시를 통과하는 방법

System.setProperty("http.proxySet", "true"); 
    System.setProperty("http.proxyHost", "107.108.85.10"); 
    System.setProperty("http.proxyPort", "80"); 

도와주세요.

socket.send(packet); 
    System.out.println("NTP request sent, waiting for response...\n"); 
    packet = new DatagramPacket(buf, buf.length); 
    socket.receive(packet); 
    System.out.println("Packet Received"); 
내가 응답을 기다리는, 전송 NTP 요청을 볼 수 있어요

...하지만 패킷이 응답을 받았습니다 ..

답변

0

DatagramPacket은 UDP를 의미합니다. HTTP 프록시는 HTTP 요청 만 프록시 할 수 있으므로 운이 없다. HTTP를 통한 NTP 검색을 시도하십시오.

+0

하지만 UDP 만 사용해야하는 경우에는 어떻게해야합니까? UDP 패킷을 보내거나받을 수 있습니까? – scooby

+0

네트워크/방화벽 관리자와 함께하는 것이 더 낫습니다. – artbristol

0
  1. System.setProperty를 ("http.proxySet", " 참 ") 아무것도하지 않습니다.

  2. System.setProperty ("http.proxyHost", "107.108.85.10") 및 System.setProperty ("http.proxyPort", "80")는 HTTP URL을 사용하는 동안 원하는대로 정확하게 수행합니다. 소켓을 직접 사용하는 경우에는 아무 작업도 수행하지 않습니다.

  3. HTTP 프록시를 사용하는 경우 HTTP 프로토콜을 사용하고 있다는 의미이므로이 경우에는 Java에서 제공하는 클래스를 사용해야합니다. 또는 Proxy HttpClient와 같은 타사 API는 자체 정의 된 프록시 정의 방법을 가지고 있습니다.

  4. HTTP를 사용하지 않는 경우 HTTP 프록시가 많은 도움이되지 않습니다.