Nhull

Untitled

Apr 25th, 2016
881
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <string.h>
  5. #include <sys/types.h>
  6. #include <sys/socket.h>
  7. #include <netinet/in.h>
  8. #include <netdb.h>
  9.  
  10. void ErrorMessage(const char *msg){
  11.     perror(msg);
  12.     exit(1);
  13. }
  14.  
  15. int main(int argc,char *argv[]){
  16.     int sock_fd=0, port=0,n=0;
  17.     char buffer[256];
  18.     struct sockaddr_in serv_addr;
  19.     struct hostent *server;
  20.  
  21.     if(argc!=3){
  22.         fprintf(stderr,"Syntax: %s hostname port",argv[0]);
  23.         return 0;
  24.     }
  25.  
  26.     port=atoi(argv[2]);
  27.     sock_fd=socket(AF_INET,SOCK_STREAM,0);
  28.     if(sock_fd<0)
  29.         ErrorMessage("Error opening socket");
  30.  
  31.     server=gethostbyname(argv[1]);
  32.     if(server==NULL){
  33.         fprintf(stderr,"Host doesn't exist\n");
  34.         return 0;
  35.     }
  36.  
  37.     bzero((char *)&serv_addr,sizeof(serv_addr));
  38.     serv_addr.sin_family=AF_INET;
  39.     bcopy((char *)server->h_addr,(char *)&serv_addr.sin_addr.s_addr,server->h_length);
  40.     serv_addr.sin_port=htons(port);
  41.    
  42.     if (connect(sock_fd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
  43.         ErrorMessage("Error in connection");
  44.  
  45.     printf("Insert message: \n");
  46.     bzero(buffer,256);
  47.     fgets(buffer,256,stdin);
  48.     n=write(sock_fd,buffer,strlen(buffer));
  49.  
  50.     if(n<0)
  51.         ErrorMessage("Error writing in socket");
  52.     bzero(buffer,256);
  53.     n=read(sock_fd,buffer,255);
  54.  
  55.     if(n<0)
  56.         ErrorMessage("Error reading socket");
  57.     printf("%s\n",buffer);
  58.     return 0;
  59. }
RAW Paste Data