1 // TCPIP time protocol.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5  #include <winsock2.h>
 6  #include <stdio.h>
 7  #pragma comment(lib,"WS2_32")
 8  class CInitSock
 9  {
10  public:
11      CInitSock(BYTE minorVer=2,BYTE majorVer=2)
12      {
13          WSADATA wsaData;
14          WORD sockVersion = MAKEWORD(minorVer,majorVer);
15          if(::WSAStartup(sockVersion,&wsaData)!=0)
16          {
17              exit(0);
18          }
19      }
20      ~CInitSock()
21      {
22          ::WSACleanup();
23      }
24  };
25 CInitSock initSock;
26 void SetTimeFromTP(ULONG ulTime)
27 {
28     FILETIME ft;
29     SYSTEMTIME st;
30     st.wYear = 1900;
31     st.wMonth = 1;
32     st.wDay = 1;
33     st.wHour = 0;
34     st.wMinute = 0;
35     st.wSecond = 0;
36     st.wMilliseconds = 0;
37     SystemTimeToFileTime(&st,&ft);
38 
39     LONGLONG *pLLong=(LONGLONG*)&ft;
40     *pLLong +=(LONGLONG)10000000*ulTime;
41     FileTimeToSystemTime(&ft,&st);
42     SetSystemTime(&st);
43 }
44 int main()
45 {
46     SOCKET s = ::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
47     if(s == INVALID_SOCKET)
48     {
49         printf("Failed socket()\n");
50         return 0;
51     }
52     sockaddr_in servAddr;
53     servAddr.sin_family = AF_INET;
54     servAddr.sin_port = htons(37);
55 
56     servAddr.sin_addr.S_un.S_addr = inet_addr("18.145.0.30");
57     if(::connect(s,(sockaddr*)&servAddr,sizeof(servAddr)) == -1)
58     {
59         printf("Failed connect()\n");
60         return 0;
61     }
62 
63     ULONG ulTime = 0;
64     int nRecv = ::recv(s,(char*)&ulTime,sizeof(ulTime),0);
65     if(nRecv>0)
66     {
67         ulTime=ntohl(ulTime);
68         SetTimeFromTP(ulTime);
69         printf("成功与时间服务器的时间同步!\n");
70     }
71     else
72     {
73         printf("时间服务器不能确定当前时间!\n");
74     }
75     ::closesocket(s);
76     return 0;
77 }

试了好多服务器IP地址,都不好使.....郁闷....

相关文章:

  • 2022-12-23
  • 2021-12-14
  • 2021-07-24
  • 2021-11-11
  • 2022-01-03
  • 2019-08-14
  • 2022-01-05
猜你喜欢
  • 2021-09-18
  • 2022-01-22
  • 2022-12-23
  • 2021-10-12
  • 2021-09-20
  • 2021-10-31
  • 2021-09-02
相关资源
相似解决方案