生成一段http双向连接的C语言代码
时间: 2024-04-29 18:26:17 浏览: 18
以下是生成一段http双向连接的C语言代码的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main() {
int sockfd;
struct sockaddr_in addr;
char buffer[1024];
char *request = "GET / HTTP/1.0\r\nHost: example.com\r\n\r\n";
char *response;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
inet_pton(AF_INET, "93.184.216.34", &(addr.sin_addr));
connect(sockfd, (struct sockaddr *)&addr, sizeof(addr));
write(sockfd, request, strlen(request));
response = malloc(1024);
memset(response, 0, 1024);
read(sockfd, response, 1024);
printf("Response:\n%s\n", response);
close(sockfd);
free(response);
return 0;
}
```
此代码中建立了一个 TCP socket 连接,使用 HTTP/1.0 协议向示例网站 example.com 发送了一个 get 请求。发送的请求包括了 Host 头部,以保证请求可以正确的路由到 example.com 服务器。执行此代码将输出服务器返回的响应内容。
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](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)