Guest User

Untitled

a guest
Feb 21st, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. /*
  2. * File: Opdracht6.c
  3. * Author: Wouter
  4. *
  5. * Created on 20 oktober 2011, 19:05
  6. */
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <unistd.h>
  11. #include <errno.h>
  12. #include <string.h>
  13. #include <netdb.h>
  14. #include <sys/types.h>
  15. #include <netinet/in.h>
  16. #include <sys/socket.h>
  17. #include <arpa/inet.h>
  18. #include <time.h>
  19.  
  20. #define MAXDATASIZE 1024
  21.  
  22. int main(int argc, char** argv)
  23. {
  24. int sockfd, bytes;
  25. int PORT = 123;
  26. unsigned long buffer[1024];
  27. char size[INET_ADDRSTRLEN];
  28. struct sockaddr_in server_addr;
  29. struct sockaddr_storage their_addr;
  30. socklen_t fromlen;
  31. struct protoent *proto;
  32. char msg[48]={010,0,0,0,0,0,0,0,0}; //the packet that will be send
  33. time_t servertime;
  34. char *ip="193.190.198.10"; // IP address from ntp.belnet.be
  35.  
  36. memset(&server_addr, 0, sizeof server_addr); //memset cleart hints
  37. server_addr.sin_family = AF_INET;
  38. server_addr.sin_addr.s_addr = inet_addr(ip);
  39.  
  40. server_addr.sin_port = htons(PORT);
  41.  
  42. proto=getprotobyname("udp");
  43.  
  44. if ((sockfd = socket(PF_INET, SOCK_DGRAM, proto->p_proto))==-1)
  45. {
  46. perror("socket returns -1");
  47. }
  48.  
  49. printf("client: connecting to: %s\n", size);
  50.  
  51. printf("%s", msg);
  52.  
  53. int sendinfo = sendto(sockfd, msg, sizeof(msg), 0, (struct sockaddr *)&server_addr, sizeof(server_addr));
  54.  
  55. if (sendinfo == -1)
  56. {
  57. perror("send returns -1");
  58. exit(1);
  59. }
  60.  
  61. fromlen = sizeof(their_addr);
  62.  
  63. bytes = recvfrom(sockfd, buffer, sizeof(buffer),0, (struct sockaddr *)&their_addr, &fromlen);
  64.  
  65. if (bytes == -1)
  66. {
  67. perror("");
  68. }
  69.  
  70. servertime=((time_t)buffer[10]);
  71. servertime = ntohl(servertime);
  72. servertime -= 2208988800U;
  73.  
  74. printf("Time: %s", ctime(&servertime));
  75.  
  76. close(sockfd);
  77.  
  78. return (EXIT_SUCCESS);
  79. return 0;
  80. }
Add Comment
Please, Sign In to add comment