Tobiahao

S01_BSD_03_CLIENT

Jan 23rd, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. /*
  2. Napisz program, ktory bedzie realizowal polecenie zawarte w zadaniu pierwszy, ale w oparciu o protokol UDP/IP
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <sys/types.h>
  8. #include <sys/socket.h>
  9. #include <arpa/inet.h>
  10. #include <netinet/in.h>
  11. #include <unistd.h>
  12. #include <string.h>
  13.  
  14. #define SERVER_PORT 1919
  15. #define SERVER_IP "127.0.0.1"
  16.  
  17. void error_handler(const char *msg)
  18. {
  19.     perror(msg);
  20.     exit(EXIT_FAILURE);
  21. }
  22.  
  23. int main(void)
  24. {
  25.     int socketfd;
  26.     struct sockaddr_in sockaddr;
  27.     char buffer[BUFSIZ];
  28.  
  29.     if(!inet_aton(SERVER_IP, &sockaddr.sin_addr))
  30.         error_handler("inet_aton");
  31.     sockaddr.sin_family = AF_INET;
  32.     sockaddr.sin_port = htons(SERVER_PORT);
  33.     memset(sockaddr.sin_zero, '\0', 8);
  34.  
  35.     if((socketfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
  36.         error_handler("socket");
  37.  
  38.     memset(buffer, '\0', BUFSIZ);
  39.     printf("Podaj wiadomosc do wyslania: ");
  40.     fgets(buffer, BUFSIZ, stdin);  
  41.  
  42.     if(sendto(socketfd, buffer, BUFSIZ, 0, (struct sockaddr *)&sockaddr, sizeof(sockaddr)) == -1)
  43.         error_handler("sendto");
  44.  
  45.     if(close(socketfd) == -1)
  46.         error_handler("close");
  47.  
  48.     return EXIT_SUCCESS;
  49. }
Add Comment
Please, Sign In to add comment