TimeTCPClient和TimeUDPClient都超时

问题描述 投票:-1回答:1

我需要来自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 Sekonds之后,我得到了这个例外:

java.net.SocketTimeoutException:接收在java.net.DataLings上的java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:143)的java.net.PlainDatagramSocketImpl.receive0(本机方法)超时(DatagramSocket.java:812) )org.apache.commons.net.time.TimeUDPClient.getTime(TimeUDPClient.java:84)位于or.modusoft.opt的org.apache.commons.net.time.TimeUDPClient.getTime(TimeUDPClient.java:98)。 java.lang.Thread.run中的viewer.TimeSyncThread.run(TimeSyncThread.java:34)(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;
    }

并且还获得了Timeout异常。

java.net.SocketTimeoutException:java.net上的java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)中java.net.PlainSocketImpl.socketConnect(Native Method)的连接时间超时(AbstractPlainSocketImpl.java:206) )java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)的java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)at java..Socket.connect(Socket.java:589)at org.apache .gmons.com.SocketClient.connect(SocketClient.java:182)位于org.apache.commons.net.SocketClient.connect(SocketClient.java:203)org.apache.commons.net.SocketClient.connect(SocketClient.java) :296)at.modusoft.opt.viewer.TimeSyncThread.run(TimeSyncThread.java:29)at java.lang.Thread.run(Thread.java:748)

host是一个String并且尝试过“0.de.pool.ntp.org”,“ntp.xs4all.nl”。

谢谢你的帮助。

java tcp udp ntp apache-commons-net
1个回答
0
投票

如果您需要NTP服务器的时间,则需要使用NTP协议。 TimeUDPClientTimeTCPClient类使用时间协议,而不是NTP。

© www.soinside.com 2019 - 2024. All rights reserved.