TimeGetter
Demonstrates how to connect to the server, get time and NTP/SNTP server info including stratum.
The sample show:
- Connect SNTP/NTP server.
- Get server timestamp.
- Get protocol version supported by the server.
- Show server stratum.
C#
Ntp ntp = new Ntp(args[0]);
// since we want to know the highest version the server supports, we
// must declare the highest ourselves (otherwise it would use
// compatibility mode)
ntp.VersionNumber = 4;
NtpResponse response = ntp.GetTime();
NtpPacket packet = response.Packet;
Console.WriteLine(
"We sent the request to the server at {0} UTC and received its response at {1} UTC.",
packet.OriginateTimestamp,
packet.DestinationTimestamp
);
Console.WriteLine(
"The server at {0} has stratum {1} and runs NTP version {2}.",
args[0],
packet.Stratum,
packet.VersionNumber
);
Console.WriteLine(
"It received our request at {0} UTC and responded to it at {1} UTC.",
packet.ReceiveTimestamp,
packet.TransmitTimestamp
);
DateTime current = DateTime.Now;
DateTime exact = current + response.TimeOffset.ToTimeSpan();
Console.WriteLine(
"The current local time is {0} and it should be adjusted to {1}.",
current,
exact
);
VB.NET
Dim ntp As Ntp = New Ntp(args(1))
' since we want to know the highest version the server supports, we
' must declare the highest ourselves (otherwise it would use compatibility mode)
ntp.VersionNumber = 4
Dim response As NtpResponse = ntp.GetTime()
Dim packet As NtpPacket = response.Packet
Console.WriteLine( _
"We sent the request to the server at {0} UTC and received its response at {1} UTC.", _
packet.OriginateTimestamp, _
packet.DestinationTimestamp _
)
Console.WriteLine( _
"The server at {0} has stratum {1} and runs NTP version {2}.", _
args(1), _
packet.Stratum, _
packet.VersionNumber _
)
Console.WriteLine( _
"It received our request at {0} UTC and responded to it at {1} UTC.", _
packet.ReceiveTimestamp, _
packet.TransmitTimestamp _
)
Dim current As DateTime = DateTime.Now
Dim exact As DateTime = current.Add(response.TimeOffset.ToTimeSpan)
Console.WriteLine( _
"The current local time is {0} and it should be adjusted to {1}.", _
current, _
exact _
)