Guest User

Untitled

a guest
Oct 22nd, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.57 KB | None | 0 0
  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. #define PORT (ushort) 5002
  10.  
  11. void error(const char *msg)
  12. {
  13.     perror(msg);
  14.     exit(0);
  15. }
  16.  
  17. int main(int argc, char *argv[])
  18. {
  19.     int sockfd, portno, n;
  20.     struct sockaddr_in serv_addr;
  21.     struct hostent *server;
  22.  
  23.  
  24.     char buffer[256];
  25.     if (argc < 3) {
  26.        fprintf(stderr,"usage %s hostname port\n", argv[0]);
  27.        exit(0);
  28.     }
  29.     portno = atoi(argv[2]);
  30.     sockfd = socket(AF_INET, SOCK_STREAM, 0);
  31.     if (sockfd < 0)
  32.         error("ERROR opening socket");
  33.     server = gethostbyname(argv[1]);
  34.     if (server == NULL) {
  35.         fprintf(stderr,"ERROR, no such host\n");
  36.         exit(0);
  37.     }
  38.     bzero((char *) &serv_addr, sizeof(serv_addr));
  39.     serv_addr.sin_family = AF_INET;
  40.     bcopy((char *)server->h_addr,
  41.          (char *)&serv_addr.sin_addr.s_addr,
  42.          server->h_length);
  43.     serv_addr.sin_port = htons(portno);
  44.     if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
  45.         error("ERROR connecting");
  46. while(1)
  47. {
  48.  
  49.     printf("Anropa servern: ");
  50.     bzero(buffer,256);
  51.     fgets(buffer,255,stdin);
  52.     n = write(sockfd,buffer,strlen(buffer));
  53.     if (n < 0)
  54.          error("ERROR writing to socket");
  55.     bzero(buffer,256);
  56.     n = read(sockfd,buffer,255);
  57.     if (n < 0)
  58.          error("ERROR reading from socket");
  59.  
  60.     if (strcmp(buffer, "quit") == 0) {
  61.     return 0;
  62.  
  63. } else {
  64. printf("%s\n", buffer);
  65. }
  66.  
  67. }
  68. }
Add Comment
Please, Sign In to add comment