网络时间核对
2016-05-15 22:52
405 查看
#include <WinSock2.h> #include <Windows.h> #include <stdio.h> #pragma comment (lib,"ws2_32.lib") void SetFromTime(ULONG nlong) { FILETIME ft; SYSTEMTIME st; ZeroMemory(&st,sizeof(st)); st.wYear=1900; st.wMonth=1; st.wDay=1; SystemTimeToFileTime(&st,&ft); LONGLONG *pLong=(LONGLONG*)&ft; *pLong+=(LONGLONG)10000000*nlong; FileTimeToSystemTime(&ft,&st); SetSystemTime(&st); return ; } int main (void) { WSADATA wsaData; WSAStartup(MAKEWORD(2,2),&wsaData); SOCKET sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (sock==INVALID_SOCKET)return false; sockaddr_in sin; sin.sin_family=AF_INET; sin.sin_port=htons(37); sin.sin_addr.S_un.S_addr=inet_addr("128.138.141.172");//time.nist.gov if (connect(sock,(SOCKADDR*)&sin,sizeof(sin))==SOCKET_ERROR) { printf("连接失败\n"); return false; } ULONG ulTime=0; if (recv(sock,(TCHAR*)&ulTime,sizeof(ulTime),0)==SOCKET_ERROR) { printf("接收失败\n"); return false; } ULONG nlong=ntohl(ulTime); SetFromTime(nlong); printf("时间核对成功\n"); WSACleanup(); return 0; }
相关文章推荐
- TCP的三次握手与四次挥手过程的每一步的具体状态变换
- 15 个简单、有趣而实用的 单行 HTTP Server
- 关于http和serverlet实现服务器和客户端的交互
- 【Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)
- iOS 网络编程:AFNetworking
- 网络学习-子网掩码
- 20159302《网络攻击与防范》第十一周学习总结
- HttpClient, HttpClientHandler, and WebRequestHandler Explained
- HttpClient4.0 Http连接池技术简介
- ajax原理和XmlHttpRequest对象
- 网络连接状态管理ConnectivityManager
- AsyncHttpClient线程使用分析
- Android wpa_supplcant 启动之--网络接口初始化
- 在 IIS 6 和 IIS 7中配置Https,设置WCF同时支持HTTP和HTPPS,以及使用HttpWebRequest和HttpClient调用HttpS
- 在linux内核中修改TCP MSS值
- TCP中RTT的测量和RTO的计算
- Linux网络协议栈协议的处理
- 网络协议的初始化dev_add_pack
- VMware网络配置详解
- 网络通信常见问题