WSAStartup 初始化 Winsock。socket(AF_INET, SOCK_STREAM, 0) 建立 TCP 連線。connect 連接 HTTP 伺服器(預設埠 80)。GET /path HTTP/1.0\r\nHost: domain\r\n\r\n。recv 接收回應,寫入檔案。closesocket、WSACleanup 清理。BOOL HttpClient() {
WSADATA ws; WSAStartup(MAKEWORD(2,2), &ws);
SOCKET s = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in addr = {0};
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.s_addr = inet_addr("168.160.224.185"); // 目標 IP
if (connect(s, (sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR) {
WSACleanup(); return FALSE;
}
char req[] = "GET /99/tips/ HTTP/1.0\r\nHost: www.computerworld.com.cn\r\n\r\n";
send(s, req, strlen(req), 0);
FILE* fp = fopen("index.htm", "wb");
char buf[1024]; int n;
while ((n = recv(s, buf, sizeof(buf), 0)) > 0) {
fwrite(buf, 1, n, fp);
}
fclose(fp);
closesocket(s); WSACleanup();
return TRUE;
}
HttpClient()。新專案建議使用 WinHTTP、WinINet 或第三方庫(libcurl、cpp-httplib),支援 HTTPS、Proxy、非同步、HTTP/2 等現代特性。