Package org.apache.commons.net.time

# Class TimeUDPClient

java.lang.Object
org.apache.commons.net.DatagramSocketClient
org.apache.commons.net.time.TimeUDPClient

All Implemented Interfaces:
  `AutoCloseable`

public final class TimeUDPClient extends DatagramSocketClient
The TimeUDPClient class is a UDP implementation of a client for the Time protocol described in RFC 868. To use the class, merely open a local datagram socket with `open` and call `getTime` or `getDate` to retrieve the time. Then call `close` to close the connection properly. Unlike `TimeTCPClient`, successive calls to `getTime` or `getDate` are permitted without re-establishing a connection. That is because UDP is a connectionless protocol and the Time protocol is stateless.

See Also:
  - `TimeTCPClient`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `DEFAULT_PORT`
  The default time port.
  `static final long`
  `SECONDS_1900_TO_1970`
  The number of seconds between 00:00 1 January 1900 and 00:00 1 January 1970.

  ### Fields inherited from class org.apache.commons.net.DatagramSocketClient

  `_isOpen_, _socket_, _socketFactory_, _timeout_`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TimeUDPClient()`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Date`
  `getDate(InetAddress host)`
  Gets the time from a server and returns a Java Date containing the time converted to the local time zone.
  `Date`
  `getDate(InetAddress host, int port)`
  Gets the time from a server and returns a Java Date containing the time converted to the local time zone.
  `long`
  `getTime(InetAddress host)`
  Gets the time from the specified server and default port.
  `long`
  `getTime(InetAddress host, int port)`
  Gets the time from the specified server and port.

  ### Methods inherited from class org.apache.commons.net.DatagramSocketClient

  `checkOpen, close, getCharset, getCharsetName, getDefaultTimeout, getLocalAddress, getLocalPort, getSoTimeout, getSoTimeoutDuration, isOpen, open, open, open, setCharset, setDatagramSocketFactory, setDefaultTimeout, setDefaultTimeout, setSoTimeout, setSoTimeout`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### DEFAULT_PORT

    public static final int DEFAULT_PORT
    The default time port. It is set to 37 according to RFC 868.
    See Also:
      - Constant Field Values

  - ### SECONDS_1900_TO_1970

    public static final long SECONDS_1900_TO_1970
    The number of seconds between 00:00 1 January 1900 and 00:00 1 January 1970. This value can be useful for converting time values to other formats.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### TimeUDPClient

    public TimeUDPClient()
    Constructs a new instance.

- ## Method Details

  - ### getDate

    public Date getDate(InetAddress host) throws IOException
    Gets the time from a server and returns a Java Date containing the time converted to the local time zone.
    Parameters:
      `host` - the time-server
    Returns:
      the date
    Throws:
      `IOException` - on error

  - ### getDate

    public Date getDate(InetAddress host, int port) throws IOException
    Gets the time from a server and returns a Java Date containing the time converted to the local time zone.
    Parameters:
      `host` - The address of the server.
      `port` - The port of the service.
    Returns:
      A Date value containing the time retrieved from the server converted to the local time zone.
    Throws:
      `IOException` - If an error occurs while fetching the time.

  - ### getTime

    public long getTime(InetAddress host) throws IOException
    Gets the time from the specified server and default port.
    Parameters:
      `host` - the time-server
    Returns:
      the time returned from the server
    Throws:
      `IOException` - on error

  - ### getTime

    public long getTime(InetAddress host, int port) throws IOException
    Gets the time from the specified server and port. The time is the number of seconds since 00:00 (midnight) 1 January 1900 GMT, as specified by RFC 868. This method reads the raw 32-bit big-endian unsigned integer from the server, converts it to a Java long, and returns the value.
    Parameters:
      `host` - The address of the server.
      `port` - The port of the service.
    Returns:
      The time value retrieved from the server.
    Throws:
      `IOException` - If an error occurs while retrieving the time.