sarkanydavidhu

Teszt

Apr 16th, 2014
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.40 KB | None | 0 0
  1. #pragma comment(lib, "ws2_32.lib")
  2. #include <winsock2.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <string.h>
  6.  
  7.  
  8. #define DEFAULT_PORT 1234
  9.  
  10.  
  11.  
  12.  
  13. int main(int argc, char **argv)
  14. {
  15.     char Buffer[128];
  16.     char *server_name= "127.0.0.1";
  17.     unsigned short port = 1234;
  18.     int retval, loopflag = 0;
  19.     int i, loopcount, maxloop=-1;
  20.     unsigned int addr;
  21.     struct sockaddr_in server;
  22.     struct hostent *hp;
  23.     WSADATA wsaData;
  24.     SOCKET  conn_socket;
  25.  
  26.  
  27.  
  28.     if ((retval = WSAStartup(0x202, &wsaData)) != 0)
  29.     {
  30.         fprintf(stderr,"Client: WSAStartup() failed with error %d\n", retval);
  31.         WSACleanup();
  32.         getchar();
  33.         return -1;
  34.     }
  35.     else
  36.     {
  37.         printf("Client: WSAStartup() is OK.\n");
  38.     }
  39.  
  40.  
  41.  
  42.     addr = inet_addr(server_name);
  43.     hp = gethostbyaddr((char *)&addr, 4, AF_INET);
  44.  
  45.  
  46.  
  47.     if (hp == NULL )
  48.     {
  49.         fprintf(stderr,"Client: Cannot resolve address \"%s\": Error %d\n", server_name, WSAGetLastError());
  50.         WSACleanup();
  51.         exit(1);
  52.     }
  53.     else
  54.         printf("Client: gethostbyaddr() is OK.\n");
  55.     memset(&server, 0, sizeof(server));
  56.     memcpy(&(server.sin_addr), hp->h_addr, hp->h_length);
  57.     server.sin_family = hp->h_addrtype;
  58.     server.sin_port = htons(port);
  59.  
  60.     conn_socket = socket(AF_INET, SOCK_STREAM, 0);
  61.     if (conn_socket <0 )
  62.     {
  63.         fprintf(stderr,"Client: Error Opening socket: Error %d\n", WSAGetLastError());
  64.         WSACleanup();
  65.         getchar();
  66.         return -1;
  67.     }
  68.     else
  69.     {
  70.         printf("Client: socket() is OK.\n");
  71.     }
  72.  
  73.  
  74.     printf("Client: Client connecting to: %s.\n", hp->h_name);
  75.     if (connect(conn_socket, (struct sockaddr*)&server, sizeof(server)) == SOCKET_ERROR)
  76.     {
  77.         fprintf(stderr,"Client: connect() failed: %d\n", WSAGetLastError());
  78.         WSACleanup();
  79.         return -1;
  80.     }
  81.     else
  82.         printf("Client: connect() is OK.\n");
  83.  
  84.  
  85.  
  86.  
  87.  
  88.     ;
  89.  
  90.         retval = recv(conn_socket, Buffer, sizeof(Buffer), 0);
  91.         if (retval == SOCKET_ERROR)
  92.         {
  93.             fprintf(stderr,"Client: recv() failed: error %d.\n", WSAGetLastError());
  94.             closesocket(conn_socket);
  95.             WSACleanup();
  96.             return -1;
  97.         }
  98.         else
  99.             printf("Client: recv() is OK.\n");
  100.  
  101.         // We are not likely to see this with UDP, since there is no
  102.         // 'connection' established.
  103.         if (retval == 0)
  104.         {
  105.             printf("Client: Server closed connection.\n");
  106.             closesocket(conn_socket);
  107.             WSACleanup();
  108.             return -1;
  109.         }
  110.  
  111.         printf("Client: Received %d bytes, data \"%s\" from server.\n", retval, Buffer);
  112.  
  113.  
  114.         closesocket(conn_socket);
  115.         WSACleanup();
  116.         getchar();
  117.         return 0;
  118.     }
Advertisement
Add Comment
Please, Sign In to add comment