gpt4 book ai didi

c - 在 C 中构建简单的 http 客户端

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:09:23 24 4
gpt4 key购买 nike

sprintf(send_data,"GET / HTTP/1.1\r\nHost: %s\r\n\r\n",hoststr);
printf("%s",send_data);
send(sock,send_data,strlen(send_data), 0);
while(bytes_recieved)
{
bytes_recieved=recv(sock,recv_data,1024,0);
printf("%d\n",bytes_recieved);
if(bytes_recieved==0){ break; }
recv_data[bytes_recieved] = '\0';
printf("%s" , recv_data);
}

当我请求例如“www.example.com”时,我得到了整个页面,然后在两三秒后最后打印了 bytes_received ('0'),然后循环中断。

为什么需要 2-3 秒才能打破循环?

有没有更好的方法来实现简单的 http 客户端?

谢谢。

最佳答案

recv返回0时,表示连接的另一端已经很好地关闭了连接。

从一开始,HTTP 就是一个纯粹的请求-响应协议(protocol),其中每个请求都会得到一个响应,然后关闭连接。

你在这里看到的是,首先你收到请求的页面,然后在超时后(由于更新版本的 HTTP 协议(protocol)(​​你说你支持)保持连接打开)来自服务器的关闭连接.

关于c - 在 C 中构建简单的 http 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21943462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com