Advertisement
Tobiahao

S01_BSD_03_SERVER

Jan 23rd, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.14 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 <unistd.h>
  11. #include <string.h>
  12.  
  13. #define SERVER_PORT 1919
  14.  
  15. void error_handler(const char *msg)
  16. {
  17.     perror(msg);
  18.     exit(EXIT_FAILURE);
  19. }
  20.  
  21. int main(void)
  22. {
  23.     int socketfd;
  24.     struct sockaddr_in sockaddr;
  25.     char buffer[BUFSIZ];
  26.  
  27.     sockaddr.sin_family = AF_INET;
  28.     sockaddr.sin_port = htons(SERVER_PORT);
  29.     sockaddr.sin_addr.s_addr = INADDR_ANY;
  30.     memset(sockaddr.sin_zero, '\0', 8);
  31.  
  32.     if((socketfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
  33.         error_handler("socket");
  34.  
  35.     if(bind(socketfd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)) == -1)
  36.         error_handler("bind");
  37.  
  38.     printf("Oczekiwanie na wiadomosc...\n");
  39.  
  40.     socklen_t socklen = sizeof(struct sockaddr);
  41.     if(recvfrom(socketfd, buffer, BUFSIZ, 0, (struct sockaddr *)&sockaddr, &socklen) == -1)
  42.         error_handler("recvfrom");
  43.  
  44.     printf("Odebrano wiadomosc: %s\n", buffer);
  45.  
  46.     if(close(socketfd) == -1)
  47.         error_handler("close");
  48.  
  49.     return EXIT_SUCCESS;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement