public static NtpPacket ReadPacket(UdpClient udpClient, NtpPacket packet)
{
var remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
byte[] data = null;
for (int i = 0; i < 5; i++)
{
data = packet.ToRawByteArray();
udpClient.Send(data, data.Length);
try
{
data = udpClient.Receive(ref remoteEndPoint);
break;
}
catch (SocketException)
{
continue;
}
}
if (data == null)
{
throw new TimeoutException();
}
var resultPacket = NtpPacket.ParseRawByteArray(data);
return(resultPacket);
}