#include
#include
#pragma comment(lib,"ws2_32.lib")
int main(int argc, char* argv[])
{
WORD sockVersion = MAKEWORD(2,2);
WSADATA data;
if(WSAStartup(sockVersion, &data) != 0)
{
return 0;
}
//通过域名获取IP
struct hostent *host = gethostbyname("cube123.cn");
if(!host)exit(0);
char *ip = inet_ntoa( *(struct in_addr*)host->h_addr_list[0]);
//进行socket连接
SOCKET sclient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(sclient == INVALID_SOCKET)
{
printf("invalid socket !");
return 0;
}
struct sockaddr_in serAddr;
serAddr.sin_family = AF_INET;
serAddr.sin_port = htons(80);
serAddr.sin_addr.S_un.S_addr = inet_addr(ip);
if (connect(sclient, (struct sockaddr *)&serAddr, sizeof(serAddr)) == SOCKET_ERROR)
{
printf("connect error !");
closesocket(sclient);
return 0;
}
//设定HTTP协议头
char sendData[2048];
memset(sendData,0,2048);
strcat(sendData,"GET /default.asp HTTP/1.1\n");
strcat(sendData,"Host: www.baidu.com\n");
strcat(sendData,"Content-Type: text/html\n");
strcat(sendData,"\n");
strcat(sendData,"\r\n\r\n");
printf("%sOK",sendData);
send(sclient, sendData, strlen(sendData), 0);
char recData[255];
int ret = 1;
while(ret){
ret = recv(sclient, recData, 255, 0);
if(ret == SOCKET_ERROR||ret<255)break;
recData[ret] = 0x00;
//utf8转码,解决中文乱码
int unicodelen = MultiByteToWideChar(CP_UTF8,0,recData,-1,NULL,0) ;
wchar_t pUnicode[unicodelen];
memset(pUnicode,0,unicodelen*sizeof(wchar_t));
MultiByteToWideChar(CP_UTF8,0,recData,-1,(LPWSTR)pUnicode,unicodelen);
wprintf(pUnicode);
// printf(recData);
}
closesocket(sclient);
WSACleanup();
return 0;
}