方便linux网页上网(自备)

Code   ViewCopyPrint
  1. /*   
  2. 为方便linux用户使用网页登陆上网,特此开发软件  
  3.  */ 
  4. #include "stdafx.h"  
  5. #include "stdio.h"  
  6. #include "stdlib.h"  
  7. #include "winsock2.h"  
  8. #pragma comment(lib,"ws2_32.lib")   
  9. int main(int argc, char* argv[])   
  10. {   
  11.   
  12.   SOCKET hsocket;   
  13.   SOCKADDR_IN saServer;   
  14.   WSADATA     wsadata;   
  15.   LPHOSTENT lphostent;   
  16.   int     nRet;   
  17.   char*   host_name="www.********.com";    //发送的目标   
  18.   char*   reqHead="POST ********* HTTP/1.1\r\n"   //此为要发送的数据包   
  19.         "Accept: */*\r\n"  
  20.         "Referer: http://www.*********\r\n"        //这些数据你可以自己抓包获得   
  21.         "Accept-Language: zh-CN\r\n"  
  22.         "User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN; twchrome)\r\n"  
  23.         "Content-Type: application/x-www-form-urlencoded\r\n"  
  24.         "Accept-Encoding: gzip, deflate\r\n"  
  25.         "Host: www.*******.com\r\n"  
  26.         "Content-Length: 375\r\n"  
  27.         "Connection: Keep-Alive\r\n"  
  28.         "Cache-Control: no-cache\r\n"  
  29.         "Cookie: ************** \r\n\r\n"  
  30.         "user=test&pass=123";    //传递的参数   
  31.            
  32. // 初始化套接字    
  33.     if(WSAStartup(MAKEWORD(2,2),&wsadata))   
  34.         printf("初始化SOCKET出错!");   
  35.     lphostent=gethostbyname(host_name);        
  36.     if(lphostent==NULL)        
  37.         printf("lphostent为空!");     
  38.     hsocket   =   socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);        
  39.     saServer.sin_family = AF_INET;        
  40.     saServer.sin_port = htons(80);        
  41.     saServer.sin_addr =*((LPIN_ADDR)*lphostent->h_addr_list);     
  42.     // 利用SOCKET连接     
  43.     nRet = connect(hsocket,(LPSOCKADDR)&saServer,sizeof(SOCKADDR_IN));        
  44.     if(nRet == SOCKET_ERROR)        
  45.     {   
  46.         printf("建立连接时出错!");        
  47.         closesocket(hsocket);   
  48.         return0;   
  49.     }   
  50.     // 利用SOCKET发送     
  51.   
  52.     nRet = send(hsocket,req,strlen(req),0);     
  53.     if(nRet==SOCKET_ERROR)     
  54.     {     
  55.         printf("发送数据包时出错!");     
  56.         closesocket(hsocket);     
  57.     }     
  58.     char   Dest[3000];        
  59.     nRet=1;        
  60.     while(nRet>0)        
  61.     {     
  62.         // 接收返回数据包     
  63.         nRet=recv(hsocket,(LPSTR)Dest,sizeof(Dest),0);        
  64.         if(nRet>0)   
  65.             Dest[nRet]=0;   
  66.         else        
  67.             Dest[0]=0;     
  68.         // 显示返回数据包的大小、内容    
  69.         printf("\nReceived   bytes:%d\n",nRet);        
  70.         printf("Result:\n%s",Dest);        
  71.     }   
  72. }  

posted on 2013-02-06 13:25  cnjack  阅读(242)  评论(0编辑  收藏  举报

导航