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
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:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
The default time port.static final long
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 -
Method Summary
Modifier and TypeMethodDescriptiongetDate
(InetAddress host) Same asgetTime(host, DEFAULT_PORT);
getDate
(InetAddress host, int port) Retrieves the time from the server and returns a Java Date containing the time converted to the local time zone.long
getTime
(InetAddress host) Same asgetTime(host, DEFAULT_PORT);
long
getTime
(InetAddress host, int port) Retrieves the time from the specified server and port and returns it.(package private) static long
toTime
(byte[] timeData) 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
-
Field Details
-
DEFAULT_PORT
public static final int DEFAULT_PORTThe default time port. It is set to 37 according to RFC 868.- See Also:
-
SECONDS_1900_TO_1970
public static final long SECONDS_1900_TO_1970The 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:
-
-
Constructor Details
-
TimeUDPClient
public TimeUDPClient()
-
-
Method Details
-
toTime
static long toTime(byte[] timeData) -
getDate
Same asgetTime(host, DEFAULT_PORT);
- Parameters:
host
- the time-server- Returns:
- the date
- Throws:
IOException
- on error
-
getDate
Retrieves the time from the 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
Same asgetTime(host, DEFAULT_PORT);
- Parameters:
host
- the time-server- Returns:
- the time returned from the server
- Throws:
IOException
- on error
-
getTime
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:
IOException
- If an error occurs while retrieving the time.
-