windows程式設計之socket套接字2

2021-06-18 21:13:20 字數 1577 閱讀 6853

網路授時服務,同步本機時間,主要**:

#include "stdafx.h"

#include

#include

#include

#include "resource.h"

#include "maindlg.h"

#define hightime 21968699 // 21968708 // jan 1, 1900 filetime.hightime

#define lowtime 4259332096 // 1604626432 // jan 1, 1900 filetime.lowtime

bool winapi main_proc(hwnd hwnd, uint umsg, wparam wparam, lparam lparam)

return false;

}bool main_oninitdialog(hwnd hwnd, hwnd hwndfocus, lparam lparam)

void main_oncommand(hwnd hwnd, int id, hwnd hwndctl, uint codenotify)

break;

default:

break;}}

void sockettest()

unsigned long ultime=0;

//接收時間伺服器返回的訊息

recv(sock,(char *)&ultime,sizeof(unsigned long),0);

ultime = ntohl(ultime);

//messagebox(null,buff,text("返回訊息"),mb_ok);

systemtime st;

uint64 uicurtime, uibasetime, uiresult;

uibasetime = ((uint64) hightime << 32) + lowtime;

uicurtime = (uint64)ultime * (uint64)10000000;

uiresult = uibasetime + uicurtime;

filetimetosystemtime((lpfiletime)&uiresult, &st);

tchar buff[256];

zeromemory(buff,sizeof(buff)/sizeof(tchar));

wsprintf(buff,text("%i年%i月%i日 %i:%i:%i"),st.wyear,st.wmonth,st.wday,st.whour+8,st.wminute,st.wsecond);

messagebox(null,buff,text(""),mb_ok);

setsystemtime(&st);

//做事情。把大象放冰箱總共分幾步 

closesocket(sock);

wsacleanup();

}void showerror()

void main_onclose(hwnd hwnd)

{enddialog(hwnd, 0);

注意:要改變本機時間必須以管理員身份執行程式。

總結:

Windows程式設計之時間

查msdn可以看到,windows中的時間分為以下幾類 format type description system systemtime year,month,day,hour,second,and millisecond,taken from the internal hardware cloc...

Windows 程式設計之服務 2

除了系統定義的五種控制碼外 還有一種是 service control shutdown 使用者還可自定義控制碼,其取值範圍是128 255。使用者可以通過控制面板中的服務 項向特定服務程式的控制處理函式傳送控制碼,程式設計師可以呼叫系統函式 controlservice 直接向服務程式的控制處理函...

windows程式設計之檔案對映

當我們對檔案進行讀寫操作的時候,我們經常會呼叫readfile和writefile這兩個api,但是如果我們的檔案較大,幾百兆甚至幾g且需要時常修改值b的時候,這時那兩個函式可能就不大好了,這時微軟提供了另外一種方法 檔案對映,來使我們進行檔案操作。handle hfile,檔案控制代碼 lpsec...