C Socket 取得网络时间

来源:百度知道 编辑:UC知道 时间:2024/07/02 01:23:32
#include<winsock.h>
#include<stdio.h>
#define TRUE 1
#pragma comment(lib,"ws2_32.lib")
void main(void)
{
int sock ,length,iError,rval;
struct sockaddr_in server;
struct sockaddr tcpaddr;
int msgsock;
char buf[1024];
WSADATA wsadata;
unsigned long ulTime;
WORD wVersionRequested=MAKEWORD(2,0);
if(WSAStartup(wVersionRequested,&wsadata))
{
perror("open stock Error is voisen 2.0\n");
exit(1);
}

sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
if(sock<0)
{
printf("Opening stream socket :%d",WSAGetLastError());
exit(2);
}
server.sin_family=AF_INET;
server.sin_addr.S_un.S_addr=inet_addr("10.150.4.161");
server.sin_port=htons(IPPORT_TIMESERVER);

connect(sock,(SOCKADDR *)&server,sizeof(server));
if(WSAEWOULDBLOCK!=(iError=WSAGetLastError())&&iError!=0)

connect是用在TCP连接下客户端上的。
socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
而你定义的是数据报,不是字节流

printf("---%u\n",ntohl(ulTime));