socket编程实现http GET请求

本文档演示了如何在C++中使用socket编程实现HTTP GET请求。首先通过`GetRealIP`函数将域名转换为IP地址,然后创建socket并连接到指定端口,发送GET请求,并接收并保存服务器响应到文件。
摘要由CSDN通过智能技术生成
// 如果host不是点分十进制格式,则将其转换成点分十进制格式
BOOL CTestDlg::GetRealIP(string& host, string& retip)
{
	retip = host;
	
	unsigned long t = inet_addr((char*)(LPCSTR)host.c_str());
	if (t == INADDR_NONE)
	{
		hostent* hostInfo = gethostbyname((char*)(LPCSTR)host.c_str());
		if (hostInfo)
		{
			struct in_addr *addr;
			addr = (struct in_addr*)hostInfo->h_addr_list[0];
			if(addr!=NULL)
			{
				retip = inet_ntoa(*addr);
			}
		}
		else
		{
			return FALSE;
		}
	}
	
	return TRUE;
}

void CTestDlg::OnButton1() 
{
	WSADATA wsaData;
	WSAStartup(MAKEWORD(2,2), &wsaData);

	SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
	if(INVALID_SOCKET == sock)
	{
		MessageBox("套接字创建失败!");
	}

	char url[] = "http://www.baidu.com";
	DWORD dwServiceType;
	CString strServer, strObject;
	INTERNET_PORT nPort;
	AfxParseURL(url, dwServiceType, strServer, strObject, nPort);
	
	string host = strServer.G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值