c实现HTTP连接
时间: 2024-02-26 16:58:28 浏览: 17
要实现HTTP连接,可以使用C语言提供的Socket API。以下是一个简单的C代码示例,可以向指定的HTTP服务器发送一个GET请求并接收响应:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main(int argc, char* argv[]) {
char* server_ip = "127.0.0.1"; // HTTP服务器IP地址
int server_port = 80; // HTTP服务器端口号
char* request = "GET / HTTP/1.1\r\nHost: localhost\r\n\r\n"; // HTTP请求内容
// 创建套接字
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
perror("socket error");
exit(1);
}
// 设置服务器地址和端口
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr(server_ip);
server_addr.sin_port = htons(server_port);
// 连接服务器
if (connect(sock, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0) {
perror("connect error");
exit(1);
}
// 发送HTTP请求
if (send(sock, request, strlen(request), 0) < 0) {
perror("send error");
exit(1);
}
// 接收HTTP响应
char response[1024];
memset(response, 0, sizeof(response));
int len = recv(sock, response, sizeof(response), 0);
if (len < 0) {
perror("recv error");
exit(1);
}
// 输出HTTP响应
printf("%s", response);
// 关闭套接字
close(sock);
return 0;
}
```
在这个示例中,我们使用`socket`函数创建了一个套接字,使用`connect`函数连接到HTTP服务器,使用`send`函数发送HTTP请求,使用`recv`函数接收HTTP响应,最后使用`close`函数关闭套接字。需要注意的是,HTTP请求的格式需要按照HTTP协议的规定进行构造。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)