/* UDP client for time */
#include
#include
#include
#include
#include
#define SIZE 1400
char buf[SIZE];
#define TIME_PORT 13
int main(int argc, char *argv[])
{
int sockfd;
int nread;
struct sockaddr_in serv_addr,
client_addr;
int len;
if (argc != 2)
{
fprintf(stderr, "usage: %s IPaddr\n", argv[0]);
exit(1);
}
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{
perror(NULL);
exit(2);
}
client_addr.sin_family = AF_INET;
client_addr.sin_addr.s_addr = htonl(INADDR_ANY);
client_addr.sin_port = htons(0);
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr(argv[1]);
serv_addr.sin_port = htons(TIME_PORT);
if (bind(sockfd, &client_addr, sizeof(client_addr)) < 0)
{
perror(NULL);
close(sockfd);
exit(3);
}
len = sizeof(serv_addr);
sendto(sockfd, buf, 1, 0, &serv_addr, len);
nread = recvfrom(sockfd, buf, SIZE, 0, &client_addr, &len);
write(1, buf, nread);
close(sockfd);
exit(0);
}