C++ socket 仿Get请求 获取网页源代码
2019-07-16
哈哈哈哈
#include<winsock2.h> #include<stdio.h> #include <string.h> #include <string> #include<iostream> using namespace std; #pragma comment(lib,"ws2_32.lib")//链接这个库 int main() { system("chcp 65001");//很多时候,中文乱码,加上就行了 WORD sockVersion = MAKEWORD(1, 1); WSADATA data; if (WSAStartup(sockVersion, &data) != 0) { printf("初始化失败"); while (1); return 0; } SOCKET sclient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sclient == INVALID_SOCKET) { printf("创建套接字失败"); while (1); return 0; } sockaddr_in serAddr; //要连接的服务器端 的 端点地址 serAddr.sin_family = AF_INET; serAddr.sin_port = htons(80); serAddr.sin_addr.S_un.S_addr = inet_addr("156.232.1.134"); //将ip变为地址结构 if (connect(sclient, (sockaddr*)&serAddr, sizeof(serAddr)) == SOCKET_ERROR) { printf("连接主机失败"); closesocket(sclient); while (1); return 0; } char *sendData = "Get / HTTP/1.1\r\n" "Connection:Keep-Alive\r\n" "host:www.anyuer.club\r\n" "User-Agent:Mozilla/5.0\r\n\r\n"; //这里我说一下,有些网站是区分Get 和GET的,所以你要根据情况输入Get还是GET send(sclient, sendData, strlen(sendData), 0); char recData[1024]; int ret = recv(sclient, recData, 1024, 0); printf("来自服务器返回的数据:\n"); while (true) { if (ret>0) { printf(recData); ret = recv(sclient, recData, 1024, 0); } } while (1); WSACleanup(); return 0; }
测试图片
发表评论: