ページ 11

NTPサーバから時刻を取得する

Posted: 2010年6月21日(月) 16:30
by MUN
毎度すみません。

VC++のアンマネージドで作成しています。

NTPサーバから時刻を取得するため、
NetRemoteTOD関数を使ってみようと思ったのですが、
サーバへ接続出来ずタイムアウトしているのです。
C#.NETで試したところ、サーバにアクセスする事が出来たので、
関数コールの方法が良くないのだと思うのですが、
ご指摘や解決策をご教授頂けると助かります。

※サーバ名は「*」で隠しています。
WCHAR serverName[/url] = { '*', '*', '*', '.', '*', '*', '*', '*', '.', '*', '*' };
LPTIME_OF_DAY_INFO pBuf = NULL;
NET_API_STATUS nStatus = ::NetRemoteTOD(serverName, (LPBYTE *)&pBuf);
if(nStatus == NERR_Success)
{
if(pBuf != NULL)
{
char d[1024];
sprintf(d, "%d/%d/%d %d:%d:%d", pBuf->tod_month, pBuf->tod_day, pBuf->tod_year, pBuf->tod_hours, pBuf->tod_mins, pBuf->tod_secs);
::MessageBox(NULL, d, "", MB_OK);
}
}

Re:NTPサーバから時刻を取得する

Posted: 2010年6月21日(月) 19:01
by シエル
MSDNを見ると、第一引数の先頭は[\\]でないと駄目となってますが、関係ありますかね?

=====================================================================================================
UncServerName
この関数を実行するリモートサーバーの名前を表す、Unicode 文字列へのポインタを指定します。この文字列の先頭は "\\" でなければなりません。このパラメータが NULL の場合、ローカルコンピュータを使います。
=====================================================================================================