我正在尝试使用服务器同步计算机时钟。我搜索了一下,发现“NTPClient”可以用来做这个。
我的目标是将计算机时间与以下时间服务器同步:
时间.nist.gov
我认为但不确定重要的一点是:
正如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());
}
......................................................
sntp.Connect(true);//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);
}