public class NtpMessage extends Object
Modifier and Type | Field and Description |
---|---|
byte |
leapIndicator
This is a two-bit code warning of an impending leap second to be
inserted/deleted in the last minute of the current day.
|
byte |
mode
This value indicates the mode, with values defined as follows:
Mode Meaning ---- ------- 0 reserved 1 symmetric active 2 symmetric
passive 3 client 4 server 5 broadcast 6 reserved for NTP control message
7 reserved for private use
In unicast and anycast modes, the client sets this field to 3 (client) in
the request and the server sets it to 4 (server) in the reply.
|
double |
originateTimestamp
This is the time at which the request departed the client for the server,
in seconds since 00:00 1-Jan-1900.
|
byte |
pollInterval
This value indicates the maximum interval between successive messages, in
seconds to the nearest power of two.
|
byte |
precision
This value indicates the precision of the local clock, in seconds to the
nearest power of two.
|
double |
receiveTimestamp
This is the time at which the request arrived at the server, in seconds
since 00:00 1-Jan-1900.
|
byte[] |
referenceIdentifier
This is a 4-byte array identifying the particular reference source.
|
double |
referenceTimestamp
This is the time at which the local clock was last set or corrected, in
seconds since 00:00 1-Jan-1900.
|
double |
rootDelay
This value indicates the total roundtrip delay to the primary reference
source, in seconds.
|
double |
rootDispersion
This value indicates the nominal error relative to the primary reference
source, in seconds.
|
short |
stratum
This value indicates the stratum level of the local clock, with values
defined as follows:
Stratum Meaning ---------------------------------------------- 0
unspecified or unavailable 1 primary reference (e.g., radio clock) 2-15
secondary reference (via NTP or SNTP) 16-255 reserved
|
double |
transmitTimestamp
This is the time at which the reply departed the server for the client,
in seconds since 00:00 1-Jan-1900.
|
byte |
version
This value indicates the NTP/SNTP version number.
|
Constructor and Description |
---|
NtpMessage()
Constructs a new NtpMessage in client -> server mode, and sets the
transmit timestamp to the current time.
|
NtpMessage(byte[] array)
Constructs a new NtpMessage from an array of bytes.
|
NtpMessage(byte leapIndicator,
byte version,
byte mode,
short stratum,
byte pollInterval,
byte precision,
double rootDelay,
double rootDispersion,
byte[] referenceIdentifier,
double referenceTimestamp,
double originateTimestamp,
double receiveTimestamp,
double transmitTimestamp)
Constructs a new NtpMessage
|
Modifier and Type | Method and Description |
---|---|
static double |
decodeTimestamp(byte[] array,
int pointer)
Will read 8 bytes of a message beginning at
pointer and
return it as a double, according to the NTP 64-bit timestamp format. |
static void |
encodeTimestamp(byte[] array,
int pointer,
double timestamp)
Encodes a timestamp in the specified position in the message
|
static String |
referenceIdentifierToString(byte[] ref,
short stratum,
byte version)
Returns a string representation of a reference identifier according to
the rules set out in RFC 2030.
|
static String |
timestampToString(double timestamp)
Returns a timestamp (number of seconds since 00:00 1-Jan-1900) as a
formatted date/time string.
|
byte[] |
toByteArray()
This method constructs the data bytes of a raw NTP packet.
|
String |
toString()
Returns a string representation of a NtpMessage
|
static short |
unsignedByteToShort(byte b)
Converts an unsigned byte to a short.
|
public byte leapIndicator
public byte version
public byte mode
public short stratum
public byte pollInterval
public byte precision
public double rootDelay
public double rootDispersion
public byte[] referenceIdentifier
public double referenceTimestamp
public double originateTimestamp
public double receiveTimestamp
public double transmitTimestamp
public NtpMessage(byte[] array)
array
- an array of byte.public NtpMessage(byte leapIndicator, byte version, byte mode, short stratum, byte pollInterval, byte precision, double rootDelay, double rootDispersion, byte[] referenceIdentifier, double referenceTimestamp, double originateTimestamp, double receiveTimestamp, double transmitTimestamp)
leapIndicator
- a byte.version
- a byte.mode
- a byte.stratum
- a short.pollInterval
- a byte.precision
- a byte.rootDelay
- a double.rootDispersion
- a double.referenceIdentifier
- an array of byte.referenceTimestamp
- a double.originateTimestamp
- a double.receiveTimestamp
- a double.transmitTimestamp
- a double.public NtpMessage()
public byte[] toByteArray()
public String toString()
public static short unsignedByteToShort(byte b)
b
- a byte.public static double decodeTimestamp(byte[] array, int pointer)
pointer
and
return it as a double, according to the NTP 64-bit timestamp format.array
- an array of byte.pointer
- a int.public static void encodeTimestamp(byte[] array, int pointer, double timestamp)
array
- an array of byte.pointer
- a int.timestamp
- a double.public static String timestampToString(double timestamp)
timestamp
- a double.String
object.public static String referenceIdentifierToString(byte[] ref, short stratum, byte version)
ref
- an array of byte.stratum
- a short.version
- a byte.String
object.Copyright © 2021. All rights reserved.