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 and Description
    --- | ---
    `static int` | `DEFAULT_PORT` The default time port.
    `static 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 and Description
    `TimeUDPClient()` Constructs a new instance.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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.
    `(package private) static long` | `toTime(byte[] timeData)`

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

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

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

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

- - ### Field Detail

    - #### 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 Detail

    - #### TimeUDPClient

          public TimeUDPClient()

      Constructs a new instance.

  - ### Method Detail

    - #### 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.

    - #### toTime

          static long toTime(byte[] timeData)