我希望我的java代码能够从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 :(得分:0)
System.setProperty(“http.proxySet”,“true”)什么都不做。
System.setProperty(“http.proxyHost”,“107.108.85.10”)和System.setProperty(“http.proxyPort”,“80”)完全符合您的要求,只要您使用HTTP URL 。如果您直接使用套接字,它们什么都不做。
如果您有HTTP代理,则暗示您正在使用HTTP协议,在这种情况下,您应该使用Java中提供的类来实现此目的。或者第三方API,例如Apache HttpClient,它有自己定义代理的方式。
如果您不使用HTTP,则HTTP代理对您没有多大用处。
答案 1 :(得分:0)
DatagramPacket
表示UDP。 HTTP代理只能代理HTTP请求,所以你运气不好。尝试谷歌搜索'NTP over HTTP'。