Наш SNTP-сервер не отвечает на мои запросы
Я написал код клиента SNTP для получения информации о времени, как показано ниже. В этом код останавливается на строке
_sntpMessageRequest.SNTPData = _udpClient.Receive(ref _ipEndpoint);
так как сервер SNTP не отвечает.
public bool QueryTimeSynchronizationServer()
{
UdpClient _udpClient = null;
IPEndPoint _ipEndpoint = null;
string _ipString = null;
IPAddress _ipAddress = null;
int _portNumber = 123;
try
{
//Valid Ip Address
_ipString = "ip address";
IPAddress.TryParse(_ipString, out _ipAddress);
_ipEndpoint = new IPEndPoint(_ipAddress, _portNumber);
//SNTPMessageRequest-> a object holds the Byte array for SNTP request and do other supporting functions
SNTPMessageRequest _sntpMessageRequest = FrameSNTPMessageRequest();
using (_udpClient = new UdpClient(123))
{
_udpClient.Client.SendTimeout = 5000;
_udpClient.Client.ReceiveTimeout = 5000;
_udpClient.Connect(_ipEndpoint);
_udpClient.Send(_sntpMessageRequest.SNTPData, _sntpMessageRequest.SNTPData.Length);
//Code stops at below line as SNTP Server is not responding.
_sntpMessageRequest.SNTPData = _udpClient.Receive(ref _ipEndpoint);
_sntpMessageRequest.ReceptionTimestamp = DateTime.Now;
string _serverTime = _sntpMessageRequest.TransmitTimeStamp.ToString();
}
}
catch (Exception ex)
{
}
return true;
}
private SNTPMessageRequest FrameSNTPMessageRequest()
{
SNTPMessageRequest _sntpMessageRequest = new SNTPMessageRequest();
_sntpMessageRequest.VersionNumber = VersionNumber.Version3;
_sntpMessageRequest.Mode = Mode.Client;
for (int i = 1; i < 48; i++)
{
_sntpMessageRequest.SNTPData[i] = 0;
}
_sntpMessageRequest.TransmitTimeStamp = DateTime.Now.ToLocalTime();
return _sntpMessageRequest;
}
Пожалуйста, помогите мне, где я делаю ошибку.