0

我希望我的 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 请求,等待响应...,但没有收到数据包响应..

4

2 回答 2

0
  1. System.setProperty("http.proxySet", "true") 什么都不做。

  2. 只要您使用 HTTP URL,System.setProperty("http.proxyHost", "107.108.85.10") 和 System.setProperty("http.proxyPort", "80") 就可以完全按照您的意愿行事。如果您直接使用套接字,它们什么也不做。

  3. 如果您有 HTTP 代理,则意味着您正在使用 HTTP 协议,在这种情况下,您应该使用 Java 中提供的类来实现此目的。或者第三方 API,例如 Apache HttpClient,它有自己的代理定义方式。

  4. 如果您不使用 HTTP,那么 HTTP 代理对您来说用处不大。

于 2012-03-07T08:54:15.497 回答
0

DatagramPacket表示UDP。HTTP 代理只能代理 HTTP 请求,所以你不走运。尝试谷歌搜索“NTP over HTTP”。

于 2012-03-07T08:55:31.947 回答