Advertisement
Tobiahao

TCP/IP Client

Jan 21st, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.30 KB | None | 0 0
  1. // TCP/IP CLIENT
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <sys/types.h>
  5. #include <sys/socket.h>
  6. #include <netinet/in.h>
  7. #include <netdb.h>
  8.  
  9. int main(int argc, char *argv[])
  10. {
  11.     int sockfd, port, n;
  12.     struct sockaddr_in serv_addr;
  13.     struct hostent *server;
  14.     char buffer[256];
  15.  
  16.     if(argc < 2){
  17.         fprintf(stderr, "usage %s hostname port\n", argv[0]);
  18.         return -1;
  19.     }
  20.  
  21.     port = atoi(argv[2]);
  22.  
  23.     sockfd = socket(AF_INET, SOCK_STREAM, 0); // socket()
  24.     if(sockfd < 0){
  25.         puts("[-] Error: opening socket");
  26.         return -1;
  27.     }
  28.  
  29.     server = gethostbyname(argv[1]);
  30.     if(server == NULL){
  31.         puts("[-] Error: No such host");
  32.         return -1;
  33.     }
  34.  
  35.     memset((char*) &serv_addr, 0, sizeof(serv_addr));
  36.     serv_addr.sin_family = AF_INET;
  37.  
  38.     memcpy((char*)&serv_addr.sin_addr.s_addr, (char*)server->h_addr, server->h_length);
  39.     serv_addr.sin_port = htons(port);
  40.  
  41.     if(connect(sockfd, &serv_addr, sizeof(serv_addr)) < 0){ // connect()
  42.         puts("[-] Error: Connect");
  43.         return -1;
  44.     }
  45.  
  46.     printf("Enter the message: ");
  47.     memset(buffer, 0, 256);
  48.     fgets(buffer, 255, stdin);
  49.  
  50.     n = write(sockfd, buffer, strlen(buffer)); // write()
  51.     if(n < 0){
  52.         puts("[-] Error: Write");
  53.         return -1;
  54.     }
  55.  
  56.     printf("%s\n", buffer);
  57.  
  58.     if(shutdown(sockfd, 2) < 0){ //close()
  59.         puts("[-] Error: Close");
  60.         return -1;
  61.     }
  62.  
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement