Advertisement
Guest User

Untitled

a guest
Jan 13th, 2017
408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #include <sys/types.h>
  2. #include <sys/socket.h>
  3. #include <netinet/in.h>
  4. #include <arpa/inet.h>
  5. #include <errno.h>
  6. #include <unistd.h>
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <netdb.h>
  10. #include <string>
  11. #include <string.h>
  12. #include <iostream>
  13.  
  14. using namespace std;
  15.  
  16. extern int errno;
  17.  
  18. int port;
  19.  
  20. int main(int argc, char *argv[])
  21. {
  22.     int sd;
  23.     struct sockaddr_in server;
  24.     string input;
  25.     string answer;
  26.     int n;
  27.     char buf[500];
  28.  
  29.     if(argc!=3)
  30.     {
  31.         cout<<"Sintaxa: "<<argv[0]<<"<adresa_server><port>\n";
  32.         return -1;
  33.     }
  34.  
  35.     port = atoi(argv[2]);//ascii to integer
  36.  
  37. //---->socket()
  38.     if((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
  39.     {
  40.         perror("Socket() error.\n");
  41.         return errno;
  42.     }
  43.  
  44.     server.sin_family = AF_INET;
  45.     server.sin_addr.s_addr = inet_addr(argv[1]);
  46.     server.sin_port = htons(port); //hostshort to network byte order
  47.  
  48. //---->connect()
  49.     if(connect(sd, (struct sockaddr *) &server, sizeof(struct sockaddr)) == -1)
  50.     {
  51.         perror("[client]Connect() error.\n");
  52.         return errno;
  53.     }
  54.  
  55.     bzero(buf, 500);
  56.     answer.empty();
  57.     input.clear();
  58.  
  59.     cout<<"[client]Input your name: "<<flush;
  60.     getline(std::cin, input);
  61.     cout<<input;
  62.     if(n = (send(sd, input.data(), input.size(), 0))<0)
  63.     {
  64.         perror("[client]Write to server error.\n");
  65.         return errno;
  66.     }
  67.  
  68.     while((n = recv(sd, buf, sizeof(buf), 0))>0)
  69.     {
  70.         answer.append(buf, buf+n);
  71.     }
  72.     if(n<0)
  73.     {
  74.         perror("[client]Read from server error.\n");
  75.         return errno;
  76.     }
  77.  
  78.     cout<<"[client]Received message is: "<<answer<<endl;
  79.  
  80.     close(sd);
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement