TimeTCPClient
Date: 2016-06-23

org.apache.commons.net.time

## Class TimeTCPClient

- java.lang.Object
- - org.apache.commons.net.SocketClient
  - - org.apache.commons.net.time.TimeTCPClient

-     public final class TimeTCPClient
      extends SocketClient

  The TimeTCPClient class is a TCP implementation of a client for the Time protocol described in RFC 868. To use the class, merely establish a connection with `connect` and call either `getTime()` or `getDate()` to retrieve the time, then call `disconnect` to close the connection properly.
  See Also:
    `TimeUDPClient`

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

      `_defaultPort_, _hostname_, _input_, _output_, _serverSocketFactory_, _socket_, _socketFactory_, _timeout_, connectTimeout, NETASCII_EOL`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TimeTCPClient()` The default TimeTCPClient constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Date` | `getDate()` Retrieves the time from the server and returns a Java Date containing the time converted to the local timezone.
    `long` | `getTime()` Retrieves the time from the server and returns it.

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

      `_connectAction_, addProtocolCommandListener, connect, connect, connect, connect, connect, connect, createCommandSupport, disconnect, fireCommandSent, fireReplyReceived, getCharset, getCharsetName, getCommandSupport, getConnectTimeout, getDefaultPort, getDefaultTimeout, getKeepAlive, getLocalAddress, getLocalPort, getProxy, getReceiveBufferSize, getRemoteAddress, getRemotePort, getSendBufferSize, getServerSocketFactory, getSoLinger, getSoTimeout, getTcpNoDelay, isAvailable, isConnected, removeProtocolCommandListener, setCharset, setConnectTimeout, setDefaultPort, setDefaultTimeout, setKeepAlive, setProxy, setReceiveBufferSize, setSendBufferSize, setServerSocketFactory, setSocketFactory, setSoLinger, setSoTimeout, setTcpNoDelay, verifyRemote`

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

    - #### TimeTCPClient

          public TimeTCPClient()

      The default TimeTCPClient constructor. It merely sets the default port to `DEFAULT_PORT` .

  - ### Method Detail

    - #### getTime

          public long getTime()
                       throws java.io.IOException

      Retrieves the time from the server 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.

      The server will have closed the connection at this point, so you should call `disconnect` after calling this method. To retrieve another time, you must initiate another connection with `connect` before calling `getTime()` again.

      Returns:
        The time value retrieved from the server.
      Throws:
        `java.io.IOException` - If an error occurs while fetching the time.

    - #### getDate

          public java.util.Date getDate()
                                 throws java.io.IOException

      Retrieves the time from the server and returns a Java Date containing the time converted to the local timezone.

      The server will have closed the connection at this point, so you should call `disconnect` after calling this method. To retrieve another time, you must initiate another connection with `connect` before calling `getDate()` again.

      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.