Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct sockaddr_in myAddr;
- struct sockaddr_in remoteAddr;
- int socketConn;
- int addrLen = sizeof( struct sockaddr );
- // Create socket to the external proxy server
- remoteAddr.sin_family = PF_INET;
- remoteAddr.sin_port = htons( PORT );
- remoteAddr.sin_addr.s_addr = inet_addr( "xx.xx.xx.xx" );
- memset( &(remoteAddr.sin_zero), '\0', 8);
- if(( socketConn = socket( PF_INET, SOCK_DGRAM, 0 ) ) == - 1 )
- {
- printf("Cannot ressocket: (%d)\n", WSAGetLastError());
- exit( 1 );
- }
- int numbytes;
- int bufferLen = 3;
- char buffer[bufferLen];
- char rcvbuffer[MAXBUFLEN];
- BYTE version = 0x05;
- BYTE authlen = 0x01;
- BYTE auth = 0x00;
- memcpy(buffer+0, &version, 1);
- memcpy(buffer+1, &authlen, 1);
- memcpy(buffer+2, &auth, 1);
- // Handshake
- numbytes = sendto( socketConn, buffer, bufferLen, 0, ( struct sockaddr * ) & remoteAddr, sizeof( struct sockaddr ) );
- if( numbytes == -1 )
- {
- printf("Cannot send: (%d)\n", WSAGetLastError());
- exit( 1 );
- }
- printf( "SentLen: %d bytes\n", numbytes );
- // Receive data from the proxy server
- myAddr.sin_family = PF_INET;
- myAddr.sin_port = htons( PORT );
- myAddr.sin_addr.s_addr = inet_addr( "0.0.0.0" );
- memset( &(myAddr.sin_zero), '\0', 8);
- if(( socketConn = socket( PF_INET, SOCK_DGRAM, 0 ) ) == - 1 ) {
- printf("Cannot ressocket: (%d)\n", WSAGetLastError());
- exit( 1 );
- }
- int myBind = bind( socketConn, ( struct sockaddr * ) &myAddr, addrLen );
- if( myBind == -1 )
- {
- printf("Cannot bind: (%d)\n", WSAGetLastError());
- exit(1);
- }
- numbytes = recvfrom( socketConn, rcvbuffer, MAXBUFLEN - 1, 0,
- ( struct sockaddr * ) &remoteAddr, & addrLen );
- if( numbytes == -1 )
- {
- printf("Cannot listen: (%d)\n", WSAGetLastError());
- exit( 1 );
- }
- printf( "recv: %s\n", inet_ntoa( myAddr.sin_addr ) );
- printf( "len: %d bytes\n", numbytes );
- rcvbuffer[ numbytes ] = '\0';
- for (int i = 0; i < numbytes; i++)
- {
- printf( "0x%02X ", (int)rcvbuffer[i] );
- }
- printf( "\n" );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement