Socket模拟网站交付请求,获取服务器返回信息

Socket模拟网站提交请求,获取服务器返回信息,
用过金山词霸的都知道他那个翻译功能是用户输入到他的编辑框,通过软件提交给百度的翻译页面,在截取翻译页面的返回结果实现的,我现在也想实现这个功能,在这个http://tool.chinaz.com/pagestatus/ 站点提交我的请求,然后获取返回结果,但是遇到好几个问题。贴上代码。
#include "stdafx.h"
#pragma  comment(lib,"ws2_32.lib")
# define LEN 1024
int main()
{
    WORD sockVersion = MAKEWORD(2,2);

    WSADATA data;

char http[60]="tool.chinaz.com";   //问题地点1
    if(WSAStartup(sockVersion, &data) != 0)
    {
        return 0;
    }

    SOCKET sclient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(sclient == INVALID_SOCKET)
    {
        printf("invalid socket !");
        return 0;
    }

    sockaddr_in serAddr;
hostent *host=gethostbyname(http);  //取得主机IP地址

int i;

int n;
      for(i=0;;i++)
{
if(host->h_addr_list[i] != NULL)
{
// printf("IP: %s\n",inet_ntoa(*(struct in_addr *)host->h_addr_list[i]));
n=i;
break;
}
}  
memcpy(&serAddr,host->h_addr_list[n],sizeof(serAddr));
    serAddr.sin_family = AF_INET;
    serAddr.sin_port = htons(80);
serAddr.sin_addr.S_un.S_addr=inet_addr(inet_ntoa(*(struct in_addr *)host->h_addr_list[i]));

    //serAddr.sin_addr.S_un.S_addr = inet_addr("113.107.161.56"); 

char buf[LEN]="POST /pagestatus/ HTTP/1.1 ";  //构造HTTP请求数据包
strcat(buf,inet_ntoa(serAddr.sin_addr));                                                         //问题地方2
strcat(buf,"Referer: http://tool.chinaz.com/pagestatus/");
strcat(buf,"Accept-Language: zh-CN");

strcat(buf,"\r\nContent-Length: 10\r\n\r\n");
strcat(buf,"Connection:close");

int time = 1000; //超时时间
setsockopt(sclient,SOL_SOCKET,SO_RCVTIMEO,(char*)&time,sizeof(time));

    if (connect(sclient, (sockaddr *)&serAddr, sizeof(serAddr)) == SOCKET_ERROR)
    {
        printf("connect error !");
        closesocket(sclient);
        return 0;
    }



    send(sclient,buf, strlen(buf)+1, 0);

    char recData[1024];
   while(true)
   {
int ret = recv(sclient, recData,LEN, 0);
if(ret > 0)
{
// recData[ret] = 0x00;
printf(recData);
}
   }
    closesocket(sclient);
    WSACleanup();
    return 0;
}

1. char http[60]="tool.chinaz.com";   这样写的话   hostent *host=gethostbyname(http);  //取得主机IP地址 这里才能正确获取IP  memcpy(&serAddr,host->h_addr_list[n],sizeof(serAddr)); 这里才能执行正确,
 如果char http[60]="tool.chinaz.com/pagestatus"; 这样写hostent *host=gethostbyname(http); 这里就会错误 host不能正确获取,下面也就不能正确执行。

2    send(sclient,buf, strlen(buf)+1, 0);  这里发送什么样的数据才能获取我需要的查询结果,我也很迷茫,我用抓包工具抓了他的封包,然后模拟了一个他发送的封包,但是不晓得对不对, 各位大牛帮我看看到底咋个搞。。。


如果直接给出解决方案的代码的,表示万分感谢,
------解决思路----------------------
建议楼主先学会使用抓包软件比如wireshark
------解决思路----------------------
这种问题别用c++写啊,用php开发多简单啊。

你说的乱码问题,估计跟编码格式有关,使用GB2312编码格式时。
一般html头部会加上

<meta content="text/html; charset=gb2312" http-equiv="content-type" />

php返回的页面会加上

header('Content-Type:text/html;charset=GB2312');


VC还真不知道怎么设置,百度下吧。