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

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

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Date`
  `getDate()`
  Gets the time from the server and returns a Java Date containing the time converted to the local time zone.
  `long`
  `getTime()`
  Gets the time from the server and returns it.

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

  `_connectAction_, addProtocolCommandListener, applySocketAttributes, checkOpenOutputStream, connect, connect, connect, connect, connect, connect, createCommandSupport, disconnect, fireCommandSent, fireReplyReceived, getCharset, getCharsetName, getCommandSupport, getConnectTimeout, getDefaultPort, getDefaultTimeout, getHostAddress, getHostAddress, getKeepAlive, getLocalAddress, getLocalPort, getProxy, getReceiveBufferSize, getRemoteAddress, getRemoteInetSocketAddress, 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 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

  - ### TimeTCPClient

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

- ## Method Details

  - ### getDate

    public Date getDate() throws IOException
    Gets the time from the server and returns a Java Date containing the time converted to the local time zone.

    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 time zone.
    Throws:
      `IOException` - If an error occurs while fetching the time.

  - ### getTime

    public long getTime() throws IOException
    Gets 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:
      `IOException` - If an error occurs while fetching the time.