Package 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 withopen
and callgetTime
orgetDate
to retrieve the time. Then callclose
to close the connection properly. UnlikeTimeTCPClient
, successive calls togetTime
orgetDate
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 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 Description TimeUDPClient()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Date
getDate(java.net.InetAddress host)
Same asgetTime(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 asgetTime(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
-
-
-
-
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
-
-
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 asgetTime(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 asgetTime(host, DEFAULT_PORT);
- Parameters:
host
- the time server- Returns:
- the date
- Throws:
java.io.IOException
- on error
-
-