TimeUDPClient
Date: 2016-06-23

org.apache.commons.net.time

## Class TimeUDPClient

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

-     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()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Date` | `getDate(java.net.InetAddress host)` Same as `getTime(host, DEFAULT_PORT);`
    `java.util.Date` | `getDate(java.net.InetAddress host, int port)` Retrieves the time from the server and returns a Java Date containing the time converted to the local timezone.
    `long` | `getTime(java.net.InetAddress host)` Same as `getTime(host, DEFAULT_PORT);`
    `long` | `getTime(java.net.InetAddress host, int port)` Retrieves the time from the specified server and port and returns it.

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

      `close, getCharset, getCharsetName, getDefaultTimeout, getLocalAddress, getLocalPort, getSoTimeout, 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()

  - ### Method Detail

    - #### getTime

          public long getTime(java.net.InetAddress host,
                     int port)
                       throws java.io.IOException

      Retrieves the time from the specified server and port and returns it. 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:
        `java.io.IOException` - If an error occurs while retrieving the time.

    - #### getTime

          public long getTime(java.net.InetAddress host)
                       throws java.io.IOException

      Same as `getTime(host, DEFAULT_PORT);`
      Parameters:
        `host` - the time server
      Returns:
        the time returned from the server
      Throws:
        `java.io.IOException` - on error

    - #### getDate

          public java.util.Date getDate(java.net.InetAddress host,
                               int port)
                                 throws java.io.IOException

      Retrieves the time from the server and returns a Java Date containing the time converted to the local timezone.
      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 timezone.
      Throws:
        `java.io.IOException` - If an error occurs while fetching the time.

    - #### getDate

          public java.util.Date getDate(java.net.InetAddress host)
                                 throws java.io.IOException

      Same as `getTime(host, DEFAULT_PORT);`
      Parameters:
        `host` - the time server
      Returns:
        the date
      Throws:
        `java.io.IOException` - on error