启航-▲每天有个新的开始▲  

 

#include   <stdio.h>   
  #include   
"winsock.h"   
  #pragma   comment(lib,
"ws2_32.lib")   
  
#define   winsock_version   0x0101   
  
void   main()   
  {   
  
//If   it   works,it   is   written   by   masterz,otherwise   I   don't   know   who   write   it.   
          SOCKADDR_IN   saServer;   
  LPHOSTENT   lphostent;   
  WSADATA   wsadata;   
          SOCKET   hsocket;   
  
int   nRet;   
  
const   char*   host_name="www.csdn.net";   
  
char*   req="POST   /member/logon.asp   HTTP/1.0\r\n"   
  
"From:   local\r\n"   
  
"User-Agent:   post_test/1.0\r\n"   
  
"Content-Type:   application/x-www-form-urlencoded\r\n"   
  
"Content-Length:   34\r\n\r\n"   
  
"name=XXXXXX&pass=XXXXXXXXX&type=1";   //if   you   change   xxx,   you   may   have   to   change   content-length   correspondingly   
  if(WSAStartup(winsock_version,&wsadata))   
  printf(
"can't   initial   socket");   
          lphostent
=gethostbyname(host_name);   
          
if(lphostent==NULL)   
  printf(
"lphostent   is   null");   
  hsocket   
=   socket(AF_INET,   SOCK_STREAM,   IPPROTO_TCP);   
          saServer.sin_family   
=   AF_INET;   
  
//   Use   def.   now,   need   to   handle   general   case   
  saServer.sin_port   =   htons(80);   
  saServer.sin_addr   
=   *((LPIN_ADDR)*lphostent->h_addr_list);   
          nRet   
=   connect(hsocket,   (LPSOCKADDR)&saServer,   sizeof(SOCKADDR_IN));   
  
if   (nRet   ==   SOCKET_ERROR)   
  {   
  printf(
"can't   connect");   
  closesocket(hsocket);   
  
return;   
  }   
  
else   
  printf(
"connected   with   %s\n",host_name);   
  nRet   
=   send(hsocket,   req,   strlen(req),   0);   
  
if   (nRet   ==   SOCKET_ERROR)   
  {   
  printf(
"send()   failed");   
  closesocket(hsocket);   
    
  }   
  
else   
  printf(
"send()   OK\n");   
  
char   dest[1000];   
  nRet
=1;   
  
while(nRet>0)   
  {   
  nRet
=recv(hsocket,(LPSTR)dest,sizeof(dest),0);   
  
if(nRet>0)   
  dest[nRet]
=0;   
  
else   
  dest[
0]=0;   
  printf(
"\nReceived   bytes:%d\n",nRet);   
  printf(
"Result:\n%s",dest);   
  }   
  }   
posted on 2007-10-19 14:41  bighope  阅读(2205)  评论(0编辑  收藏  举报