基于Socket编程的简单HTTP请求监控
1、代码示例:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h> #define SERVER_IP "192.168.1.100" // 被监控的网站服务器IP地址 #define SERVER_PORT 80 // 被监控的网站服务器端口号,一般为80 #define TIMEOUT 5 // 超时时间,单位为秒 int main() { int sockfd; struct sockaddr_in server_addr; char buffer[1024] = {0}; const char request = "GET / HTTP/1.1 Host: " SERVER_IP " Connection: close "; // 创建套接字 if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("Socket creation failed"); exit(EXIT_FAILURE); } // 设置服务器地址结构体 memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(SERVER_PORT); inet_pton(AF_INET, SERVER_IP, &server_addr.sin_addr); // 连接服务器 if (connect(sockfd, (struct sockaddr )&server_addr, sizeof(server_addr)) < 0) { perror("Connect failed"); close(sockfd); exit(EXIT_FAILURE); } // 发送HTTP请求 send(sockfd, request, strlen(request), 0); // 接收响应数据 int bytes_received = recv(sockfd, buffer, sizeof(buffer) 1, 0); if (bytes_received < 0) { perror("Receive failed"); } else { buffer[bytes_received] = '