Advertisement
Guest User

Untitled

a guest
May 28th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.28 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <errno.h>
  4. #include <strings.h>
  5. #include <string.h>
  6. #include <sys/types.h>
  7. #include <sys/socket.h>
  8. #include <netinet/in.h>
  9. #include <netdb.h>
  10. #include <unistd.h>
  11.  
  12. #define BUF_SIZE 256
  13.  
  14. int main(int argc, char ** argv)
  15. {
  16.     int sock, port;
  17.     struct sockaddr_in serv_addr;
  18.     struct hostent *server;
  19.     char buf[BUF_SIZE];
  20.  
  21.     if (argc < 3)
  22.     {
  23.        fprintf(stderr,"usage: %s <hostname> <port_number>\n", argv[0]);
  24.        return EXIT_FAILURE;
  25.     }
  26.     port = atoi(argv[2]);
  27.     sock = socket(AF_INET, SOCK_STREAM, 0);
  28.     if (sock < 0)
  29.     {
  30.       printf("socket() failed: %d", errno);
  31.       return EXIT_FAILURE;
  32.     }
  33.     server = gethostbyname(argv[1]);
  34.     if (server == NULL)
  35.     {
  36.       printf("Host not found\n");
  37.       return EXIT_FAILURE;
  38.     }
  39.     memset((char *) &serv_addr, 0, sizeof(serv_addr));
  40.     serv_addr.sin_family = AF_INET;
  41.     strncpy((char *)&serv_addr.sin_addr.s_addr, (char *)server->h_addr, server->h_length);
  42.     serv_addr.sin_port = htons(port);
  43.     if (connect(sock, (const sockaddr*)&serv_addr, sizeof(serv_addr)) < 0)
  44.     {
  45.       printf("connect() failed: %d", errno);
  46.       return EXIT_FAILURE;
  47.     }
  48.     while(true)
  49.     {
  50.         printf(">");
  51.         memset(buf, 0, BUF_SIZE);
  52.         fgets(buf, BUF_SIZE-1, stdin);
  53.         write(sock, buf, strlen(buf));
  54.     }
  55.     close(sock);
  56.     return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement