Bootstrap

C语言使用socket获取网页内容

本文讨论的是使用C语言使用socket获取网页内容


首先需要添加代码

#pragma comment(lib, "ws2_32.lib")

以下是获取网页内容的函数。函数参数为网页地址,字符串类型,如“www.baidu.com”。获取到的网页内容保存在recieved.txt文件中。

void ReadPage(char* host)
{
	WSADATA data;
	//winsock版本2.2
	int err = WSAStartup(MAKEWORD(2, 2), &data);
	if (err)
		return ;

	//用域名获取对方主机名
	struct hostent *h = gethostbyname(host);
	if (h == NULL)
		return ;

	//IPV4
	if (h->h_addrtype != AF_INET)
		return ;
	struct in_addr ina;
	//解析IP
	memmove(&ina, h->h_addr, 4);
	LPSTR ipstr = inet_ntoa(ina);

	//Socket封装
	struct sockaddr_in si;
	si.sin_family = AF_INET;
	si.sin_port = htons
;