TimeTCPClient и TimeUDPClient оба тайм-аут - PullRequest
0 голосов
/ 24 октября 2018

Мне нужно время с NTP-сервера.

Я связал это:

  TimeUDPClient client = new TimeUDPClient();
  try {
        client.open();
        client.setSoTimeout(10000);
        client.getTime(InetAddress.getByName(host));
        client.close();
  } catch (IOException exp) {
        System.out.println("NTP connection error");
        exp.printStackTrace();
        return;
  }

Через 10 секунд я получаю это исключение:

java.net.SocketTimeoutException: тайм-аут получения на java.net.PlainDatagramSocketImpl.receive0 (собственный метод) на java.net.AbstractPlainDatagramSocketImpl.receive (AbstractPlainDatagramSocketImpl.java:143) на java.net.DatagramSocket.recket (dataSocket.reception)в org.apache.commons.net.time.TimeUDPClient.getTime (TimeUDPClient.java:84) в org.apache.commons.net.time.TimeUDPClient.getTime (TimeUDPClient.java:98) в de.modusoft.opt.viewer.TimeSyncThread.run (TimeSyncThread.java:34) в java.lang.Thread.run (Thread.java:748)

Я также пробовал это:

    TimeTCPClient client = new TimeTCPClient();
    client.setConnectTimeout(10000);
    try {
        client.connect(host);
        Date ntpDate = client.getDate();
        client.disconnect();
        System.out.println("ntpDate = " + ntpDate);
    } catch (IOException exp) {
        System.out.println("NTP connection error");
        exp.printStackTrace();
        return;
    }

Итакже получено исключение Timout.

java.net.SocketTimeoutException: истекло время соединения на java.net.PlainSocketImpl.socketConnect (собственный метод) на java.net.AbstractPlainSocketImpl.doConnect (AbstractPlainSocketImpl.java:350) на java.net.AbstractPlainSocketImpl.connectToAddress (AbstractPlainSocketImpl.java:206) в java.net.AbstractPlainSocketImpl.connect (AbstractPlainSocketImpl.java:188) в java.net.SocksSocketImpl.connect (SocksSocketImpl.java.39: 39).java: 589) на org.apache.commons.net.SocketClient.connect (SocketClient.java:182) на org.apache.commons.net.SocketClient.connect (SocketClient.java:203) на org.apache.commons.net.SocketClient.connect (SocketClient.java:296) в de.modusoft.opt.viewer.TimeSyncThread.run (TimeSyncThread.java:29) в java.lang.Thread.run (Thread.java:748)

host - это строка и проверенный "0.de.pool.ntp.org", "ntp.xs4all.nl".

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 21 февраля 2019

Если вам нужно время с NTP-сервера, вам нужно использовать протокол NTP.Классы TimeUDPClient и TimeTCPClient используют протокол времени, а не NTP.

...