소켓 프로그래밍으로 타임프로토콜(client) 구현 알려주세요

rlaehdtjd86의 이미지

소켓 프로그래밍으로 타임프로토콜 (포트 37, RFC 868) 클라이언트 소스를 구현할려고 합니다.

검색을 해보니까

# File: socket-example-4.py

import socket
import struct, time

# server
HOST = "localhost"
PORT = 8037

# reference time (in seconds since 1900-01-01 00:00:00)
TIME1970 = 2208988800L # 1970-01-01 00:00:00

# connect to server
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# send empty packet
s.sendto("", (HOST, PORT))

# read 4 bytes from server, and convert to time value
t, server = s.recvfrom(4)
t = struct.unpack("!I", t)[0]
t = int(t - TIME1970)

s.close()

print "server time is", time.ctime(t)
print "local clock is", int(time.time()) - t, "seconds off"

이런식으로 자바로 구현할수 있는 소스만 나와 있는데 ..

씨언어로 구현할수 있을까요???

int main()
{
int ssock;
int clen;
struct sockaddr_in client_addr, server_addr;
char buf[MAXBUF];

strcpy(buf,"");

if((ssock=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))<0){
perror("SOCKET ERROR: ");
exit(1);
}

memset(&server_addr,0,sizeof(server_addr));
server_addr.sin_family =AF_INET;
server_addr.sin_addr.s_addr = inet_addr("time.nist.gov");
server_addr.sin_port =htons(37);

sendto(ssock,(void*)buf,MAXBUF,0,(struct sockaddr*)&server_addr, sizeof(server_addr));

printf("Send message : %s\n",buf);

recvfrom(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&client_addr, &clen);

printf("Receive message %s\n",buf);

close(ssock);

return 0;
}

이런식으로 구현 해보았는데 자바에서 나와있는 시간 정보를 어떻게 해야될지 모르겠네요 ㅠㅠ

씨언어로 되어있는 셈플코드나 소켓프로그래밍 잘 알고계시면 알려주세요

부탁드립니다 ^^