Advertisement
Guest User

Untitled

a guest
Mar 21st, 2013
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. #include <winsock2.h>
  2. #include <iostream>
  3.  
  4. int main()
  5. {
  6.     // initialize winsock
  7.     WSADATA wsa_data;
  8.     if (WSAStartup(MAKEWORD(2,2), &wsa_data) != 0)
  9.     {
  10.         std::cout << "Error: Winsock initialization failed." << std::endl;
  11.         WSACleanup();
  12.         return 1;
  13.     }
  14.  
  15.     // create socket
  16.     SOCKET server_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  17.     if (server_socket == INVALID_SOCKET)
  18.     {
  19.         std::cout << "Error: Socket creation failed." << std::endl;
  20.         WSACleanup();
  21.         return 2;
  22.     }
  23.  
  24.     // resolve ip for hostname
  25.     struct hostent *host;
  26.     if ((host = gethostbyname("localhost")) == NULL)
  27.     {
  28.         std::cout << "Error: Failed to resolve hostname." << std::endl;
  29.         WSACleanup();
  30.         return 3;
  31.     }
  32.  
  33.     // set up socket address structure
  34.     SOCKADDR_IN socket_address;
  35.     socket_address.sin_family = AF_INET;
  36.     socket_address.sin_port = htons(60840);
  37.     socket_address.sin_addr.s_addr = *((unsigned long*)host->h_addr);
  38.  
  39.     //attempt connection to server
  40.     if(connect(server_socket,(SOCKADDR*)(&socket_address), sizeof(socket_address)) != 0)
  41.     {
  42.         std::cout << "Error: Failed to establish connection to server." << std::endl;
  43.         WSACleanup();
  44.         return 4;
  45.     }
  46.  
  47.     // display message from server
  48.     char buffer[1024];
  49.     int data_length = recv(server_socket, buffer, sizeof(buffer), 0);
  50.     std::cout << buffer;
  51.  
  52.     // shut down socket
  53.     shutdown(server_socket, SD_SEND);
  54.  
  55.     // close socket
  56.     closesocket(server_socket);
  57.  
  58.     // clean and exit
  59.     WSACleanup();
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement