Tobiahao

S01_BSD_01_CLIENT

Jan 23rd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.31 KB | None | 0 0
  1. /*
  2. Napisz programy do przesyłania prostych komunikatów między dwoma komputerami zuż yciem protokoł u TCP/IP.
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <sys/socket.h>
  8. #include <sys/types.h>
  9. #include <netinet/in.h>
  10. #include <arpa/inet.h>
  11. #include <unistd.h>
  12. #include <string.h>
  13.  
  14. #define SERVER_PORT 1919
  15. #define SERVER_IP "127.0.0.1"
  16. #define WRITE_BUFFER_SIZE 128
  17.  
  18. void error_handler(const char *msg)
  19. {
  20.     perror(msg);
  21.     exit(EXIT_FAILURE);
  22. }
  23.  
  24. int main(void)
  25. {
  26.     struct sockaddr_in server_addr;
  27.     int client_socket;
  28.     char buffer[WRITE_BUFFER_SIZE];
  29.  
  30.     if((client_socket = socket(AF_INET, SOCK_STREAM, 0)) == -1)
  31.         error_handler("socket");
  32.  
  33.     if(!inet_aton(SERVER_IP, &server_addr.sin_addr))
  34.         error_handler("inet_aton");
  35.  
  36.     server_addr.sin_family = AF_INET;
  37.     server_addr.sin_port = htons(SERVER_PORT);
  38.     memset(server_addr.sin_zero, '\0', 8);
  39.  
  40.     if(connect(client_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1)
  41.         error_handler("connect");
  42.  
  43.     printf("Polaczono z serwerem!\nPodaj wiadomosc do przeslania\n> ");
  44.     fgets(buffer, WRITE_BUFFER_SIZE, stdin);
  45.  
  46.     if(write(client_socket, buffer, WRITE_BUFFER_SIZE) == -1)
  47.         error_handler("write");
  48.  
  49.     printf("Wiadomosc zostala wyslana!\n");
  50.  
  51.     if(close(client_socket) == -1)
  52.         error_handler("close");
  53.  
  54.     return EXIT_SUCCESS;
  55. }
Add Comment
Please, Sign In to add comment