socket代理源代码

  1. #include <winsock2.h>
  2. #include <stdio.h>
  3. #define PROXY_VERSION
  4. int arID[]=
  5. {
  6.     1007225
  7. };
  8. char szHeadI[] = 
  9. "GET http://www.5460.net/txl/liuyan/liuyanSql.pl?nId=%d";
  10. char szHeadII[] =
  11. "&csId=688939&cName=%d5%c2%cc%ce HTTP/1.1/r/n"
  12. "Accept: */*/r/n"
  13. "Referer: http://www.5460.net/txl/login/login.pl/r/n"
  14. "Accept-Language: zh-cn/r/n"
  15. "Accept-Encoding: gzip, deflate/r/n"
  16. "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)/r/n"
  17. "Host: www.5460.net/r/n"
  18. "Connection: Keep-Alive/r/n"
  19. #ifdef PROXY_VERSION
  20. "Proxy-Authorization: Basic eG9femp1OmJvYm8xODEzMTY=/r/n"
  21. #endif
  22. "/r/n";
  23. //"Cookie: nId=2173606; pswd=wither/r/n/r/n";
  24. char msg[4000];
  25. BOOL SockInit()
  26. {
  27.     WSADATA wsadata;
  28.     if(WSAStartup(MAKEWORD(2,0),&wsadata))
  29.     {
  30.         return FALSE;
  31.     }
  32.     if(wsadata.wVersion!=MAKEWORD(2,0))
  33.     {
  34.         WSACleanup();
  35.         return FALSE;
  36.     }
  37.     return TRUE;
  38. }
  39. int main(int argc, char* argv[])
  40. {
  41.     SockInit();
  42.     int skt;
  43.     int len;
  44.     struct sockaddr_in peer;
  45.     memset(&peer, 0, sizeof(peer));
  46.     peer.sin_family = AF_INET;
  47. #ifdef PROXY_VERSION
  48.     peer.sin_port = htons(80);
  49.     peer.sin_addr.s_addr = inet_addr("10.21.41.16");
  50. #else
  51.     peer.sin_port = htons(80);
  52.     peer.sin_addr.s_addr = inet_addr("61.137.93.108");
  53. #endif
  54.     char buff[1024*32];
  55.     for(int i = 0; i < 1 /*sizeof(arID)/sizeof(int)*/; i++)
  56.     {
  57.         int nId = arID[i];
  58.         skt = socket(AF_INET, SOCK_STREAM, 0);
  59.         len = connect(skt, (struct sockaddr *)&peer, sizeof(peer));
  60.         if(len != 0)
  61.         {
  62.             closesocket(skt);
  63.             continue;
  64.         }
  65.         sprintf(msg, szHeadI, nId);
  66.         strcat(msg, szHeadII);
  67.         len = send(skt, msg, sizeof(msg)-1, 0);
  68.         if(len <= 0)
  69.         {
  70.             closesocket(skt);
  71.             continue;
  72.         }
  73.         int total = 0;
  74.         for(;;)
  75.         {
  76.             fd_set fds;
  77.             FD_ZERO(&fds);
  78.             FD_SET(skt, &fds);
  79.             timeval tv;
  80.             tv.tv_sec = 10;
  81.             tv.tv_usec = 0;
  82.             len = select(0, &fds, NULL, NULL, &tv);
  83.             if(len <= 0)
  84.                 break;
  85.             len = recv(skt,buff, sizeof(buff), 0);
  86.             buff[len] = '/0';
  87.             printf("%s", buff);
  88.             if(len <= 0)
  89.                 break;
  90.             total += len;
  91.         }
  92.         printf("%d recv: %d/n", nId, total);
  93.         closesocket(skt);
  94.         Sleep(500);
  95.     }
  96.     WSACleanup();
  97.     return 0;
  98. }
 

你可能感兴趣的:(c,socket,Stream,360)