如何用C语言套接字发送http协议的代码
时间: 2023-03-19 21:21:53 浏览: 91
下面是一个用C语言套接字发送HTTP协议的示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main(int argc, char const *argv[]) {
int sockfd;
struct sockaddr_in serveraddr;
char *message = "GET / HTTP/1.1\r\n\r\n";
char buffer[1024];
// 创建套接字
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1) {
printf("Failed to create socket.\n");
return 1;
}
// 设置服务器地址
serveraddr.sin_family = AF_INET;
serveraddr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 将IP地址转换为32位无符号整数
serveraddr.sin_port = htons(80);
// 连接到服务器
if (connect(sockfd, (struct sockaddr*)&serveraddr, sizeof(serveraddr)) < 0) {
printf("Failed to connect to server.\n");
return 1;
}
// 发送HTTP请求
if (send(sockfd, message, strlen(message), 0) < 0) {
printf("Failed to send HTTP request.\n");
return 1;
}
// 接收响应并打印
while (recv(sockfd, buffer, 1024, 0) > 0) {
printf("%s", buffer);
}
// 关闭套接字
close(sockfd);
return 0;
}
```
此代码使用套接字创建一个TCP连接到本地服务器的端口80,并发送一个HTTP GET请求。接着,它从服务器接收响应并将其打印到控制台。最后,它关闭套接字并退出程序。注意,在实际使用中,您需要将服务器地址和端口号更改为正确的值,并在发送请求时指定正确的HTTP方法和URI路径。