Advertisement
Guest User

Untitled

a guest
May 5th, 2012
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.26 KB | None | 0 0
  1. #include <iostream>
  2. #include <winsock2.h>
  3. #include <windows.h>
  4. #include "hexdump.h"
  5.  
  6. #define DEFAULT_BUFLEN 8192
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12.     char localAddress[] = "127.0.0.1";
  13.     int localPort = 443;
  14.  
  15.     char serverAddress[] = "213.248.126.180";
  16.     int serverPort = 443;
  17.  
  18.     char fServer[DEFAULT_BUFLEN];
  19.     char fClient[DEFAULT_BUFLEN];
  20.  
  21.     cout << "PROXY" << endl;
  22.  
  23.     WSADATA WSAData;
  24.     WSAStartup(MAKEWORD(2,0), &WSAData);
  25.  
  26.     SOCKET socketClient;
  27.     SOCKADDR_IN c;
  28.     SOCKADDR_IN csin;
  29.     c.sin_addr.s_addr   = inet_addr(localAddress);
  30.     c.sin_family        = AF_INET;
  31.     c.sin_port          = htons(localPort);
  32.     socketClient = socket(AF_INET,SOCK_STREAM,0);
  33.     bind(socketClient, (SOCKADDR *)&c, sizeof(c));
  34.  
  35.     listen(socketClient, 0);
  36.  
  37.     cout << "Proxy start listening" << endl;
  38.     cout << "Waiting client..." << endl;
  39.  
  40.     int sizeof_csin = sizeof(csin);
  41.  
  42.     if((socketClient = accept(socketClient, (SOCKADDR *)&csin, &sizeof_csin)) != INVALID_SOCKET)
  43.     {
  44.         cout << "Client connected" << endl;
  45.  
  46.         SOCKET socketServer;
  47.         SOCKADDR_IN s;
  48.         s.sin_addr.s_addr   = inet_addr(serverAddress);
  49.         s.sin_family        = AF_INET;
  50.         s.sin_port          = htons(serverPort);
  51.         socketServer = socket(AF_INET,SOCK_STREAM,0);
  52.  
  53.         connect(socketServer, (SOCKADDR *)&s, sizeof(s));
  54.  
  55.         cout << "Proxy connected on server" << endl;
  56.  
  57.         while(true)
  58.         {
  59.             if(recv(socketServer, fServer, sizeof(fServer), 0) != SOCKET_ERROR)
  60.             {
  61.                 cout << "Data from server" << endl;
  62.                 send(socketClient, fServer, sizeof(fServer), 0);
  63.                 hexdump(fServer, sizeof(fServer));
  64.                 Sleep(1000); // Trop rapide si non
  65.                 cout << "Data sended to client" << endl;
  66.             }
  67.  
  68.             if(recv(socketClient, fClient, sizeof(fClient), 0) != SOCKET_ERROR)
  69.             {
  70.                 cout << "Data from client" << endl;
  71.                 send(socketServer, fClient, sizeof(fClient), 0);
  72.                 hexdump(fClient, sizeof(fClient));
  73.                 Sleep(1000);
  74.                 cout << "Data sended to server" << endl;
  75.             }
  76.         }
  77.     }
  78.  
  79.     WSACleanup();
  80.  
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement