写一个http客户端C代码并向服务器发送消息
时间: 2023-12-14 17:38:14 浏览: 29
下面是一个简单的C语言HTTP客户端代码示例,用于向服务器发送消息:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
int sock;
struct sockaddr_in server;
char message[1000], server_reply[2000];
// 创建套接字
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
printf("Could not create socket");
}
// 设置服务器地址和端口号
server.sin_addr.s_addr = inet_addr("127.0.0.1");
server.sin_family = AF_INET;
server.sin_port = htons(80);
// 连接服务器
if (connect(sock, (struct sockaddr *)&server, sizeof(server)) < 0) {
perror("Connect failed. Error");
return 1;
}
printf("Connected to server successfully\n");
// 发送HTTP请求消息
strcpy(message, "GET /index.html HTTP/1.1\r\nHost: localhost\r\n\r\n");
if (send(sock, message, strlen(message), 0) < 0) {
puts("Send failed");
return 1;
}
printf("Request message sent successfully\n");
// 接收服务器响应消息
if (recv(sock, server_reply, 2000, 0) < 0) {
puts("Receive failed");
return 1;
}
printf("Server response: %s\n", server_reply);
close(sock);
return 0;
}
```
这个示例代码会向本地主机的80端口发送一个HTTP GET请求,并输出服务器响应的消息。你可以根据自己的需求修改请求消息的内容和目标服务器地址和端口号。