Я пытаюсь синхронизировать часы компьютера, используя сервер. Я погуглил и обнаружил, что «NTPClient» может быть использован для этого.
Моя цель - синхронизировать время компьютера с сервером времени ниже:
time.nist.gov
Ниже приведены ссылки, откуда у меня есть библиотека и код для использования, как видно из моего кода:
Источник для получения файла NTPClient.cs
https://www.codeproject.com/Articles/1005/SNTP-Client-in-C
Источник кода ниже
https://www.codeguru.com/csharp/csharp/cs_date_time/timeroutines/article.php/c4207/C-SNTP-Client.htm
Когда я запускаю код, я получаю изображение, как показано ниже, где оно получает правильное время:
Я думаю, но не уверен, что важная строка:
client.Connect (истина);
поскольку intellisense говорит, что "true" означает "UpdateSystemTime", но этого не происходит, поэтому, я полагаю, я не уверен, как это сделать?
void synccomputerTime()
{
//https://www.codeproject.com/Articles/1005/SNTP-Client-in-C (Source to get NTPClient.cs file)
//https://www.codeguru.com/csharp/csharp/cs_date_time/timeroutines/article.php/c4207/C-SNTP-Client.htm (Source of below code)
NTPClient client;
try
{
client = new NTPClient("time.nist.gov");
client.Connect(true); //true should UpdateSystemTime but doesn't do that?
}
catch (Exception e)
{
MessageBox.Show("ERROR: {0}", e.Message);
return;
}
MessageBox.Show(client.ToString());
}
............................................... .......
Я также пытался использовать этот класс без удачи:
SNTPClient.cs
https://github.com/ramonsmits/InternetTime/blob/master/SNTPClient.cs
Здесь я также установил для этой строки значение true, поскольку оно должно обновлять часы компьютера, но не делает этого:
sntp.Connect (истина); // true для обновления часов локального клиента
void synccomputerTime2()
{
//https://github.com/ramonsmits/InternetTime/blob/master/SNTPClient.cs
InternetTime.SNTPClient sntp = new InternetTime.SNTPClient("ntp1.ja.net");
sntp.Connect(true); // true to update local client clock
DateTime dt = sntp.DestinationTimestamp.AddMilliseconds(sntp.LocalClockOffset);
string timeStampNow = dt.ToString("dd/MM/yyyy HH:mm:ss.fff");
MessageBox.Show(timeStampNow);
}