Advertisement
themoebius

socket_client.cpp

Apr 26th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. #include <string.h>
  2. #include <cstring>
  3. #include <unistd.h>
  4. #include <stdio.h>
  5. #include <netdb.h>
  6. #include <sys/types.h>
  7. #include <sys/socket.h>
  8. #include <netinet/in.h>
  9. #include <iostream>
  10. #include <fstream>
  11. #include <sstream>
  12. #include <iomanip>
  13. #include <strings.h>
  14. #include <stdlib.h>
  15. #include <string>
  16. #include <time.h>
  17. #include <vector>
  18. using namespace std;
  19.  
  20. int main (int argc, char* argv[])
  21. {
  22.     int listenFd, portNo;
  23.     bool loop = false;
  24.     struct sockaddr_in svrAdd;
  25.     struct hostent *server;
  26.  
  27.     if(argc < 3)
  28.     {
  29.         cerr<<"Syntax: ./client <host name> <port>"<<endl;
  30.         return 0;
  31.     }
  32.  
  33.     portNo = atoi(argv[2]);
  34.  
  35.     if((portNo > 65535) || (portNo < 2000))
  36.     {
  37.         cerr<<"Please enter port number between 2000 - 65535"<<endl;
  38.         return 0;
  39.     }
  40.  
  41.     //create client skt
  42.     listenFd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  43.  
  44.     if(listenFd < 0)
  45.     {
  46.         cerr << "Cannot open socket" << endl;
  47.         return 0;
  48.     }
  49.  
  50.     server = gethostbyname(argv[1]);
  51.  
  52.     if(server == NULL)
  53.     {
  54.         cerr << "Host does not exist" << endl;
  55.         return 0;
  56.     }
  57.  
  58.     bzero((char *) &svrAdd, sizeof(svrAdd));
  59.     svrAdd.sin_family = AF_INET;
  60.  
  61.     bcopy((char *) server -> h_addr, (char *) &svrAdd.sin_addr.s_addr, server -> h_length);
  62.  
  63.     svrAdd.sin_port = htons(portNo);
  64.  
  65.     int checker = connect(listenFd,(struct sockaddr *) &svrAdd, sizeof(svrAdd));
  66.  
  67.     if (checker < 0)
  68.     {
  69.         cerr << "Cannot connect!" << endl;
  70.         return 0;
  71.     }
  72.  
  73.     //send stuff to server
  74.     for(;;)
  75.     {
  76.         char s[301];
  77.         //cin.clear();
  78.         //cin.ignore(256, '\n');
  79.         cout << "Enter stuff: ";
  80.         bzero(s, 301);
  81.         cin.getline(s, 300);
  82.  
  83.         write(listenFd, s, strlen(s));
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement