2012-03-07 48 views
0

我想讓我的java代碼發送和接收來自ntp服務器的響應。然而,由於我在代理人後面,我無法收到任何迴應。我如何通過代理訪問服務器響應?我正在使用下面的代碼,但它沒有幫助我很多。如何在java中通過代理

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 2012-03-07 11:33:34

+0

更好地把它與你的網絡/防火牆管理員聯繫起來 – artbristol 2012-03-07 11:36:04

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中提供的類來達到此目的。或者第三方API,例如Apache HttpClient,它有自己的定義代理的方式。

  4. 如果你不使用HTTP,HTTP代理對你來說不會有多大用處。