这段C代码只获取HTTP头,而不是html文件

这段C代码只获取HTTP头,而不是html文件,c,linux,http,sockets,network-programming,C,Linux,Http,Sockets,Network Programming,我在Linux平台上编写了这段代码 当这个程序运行时,它被期望打印HTTP头和html内容。 就像: HTTP/1.1 200 OK\r\n ... ... <!DOCTYPE html> ... </html> 你能帮我接收HTTP头和html内容吗 我不知道为什么它不起作用 ============================解决方案============================= 我很高兴地说,我自己找到了解决这个问题的办法 我删除if(statu)

我在Linux平台上编写了这段代码

当这个程序运行时,它被期望打印
HTTP头
html内容
。 就像:

HTTP/1.1 200 OK\r\n
...
...
<!DOCTYPE html>
...
</html>
你能帮我接收HTTP头和html内容吗

我不知道为什么它不起作用

============================解决方案=============================

我很高兴地说,我自己找到了解决这个问题的办法


我删除
if(statu)break,然后它就如我所期望的那样工作了

问题似乎就在这里:

statu = (recived_len==BUFSIZ-1) ? 0 : 1;
if (statu) break;
我不知道你为什么要包含这个代码。除非在上一次读取时完全填充缓冲区,否则它似乎会退出循环。你这样做的原因是什么

删除这两行代码,它应该可以工作


(哦,顺便说一下,这不是“received”的拼写方式)

BUFSIZ的定义是8192。HTTP头有387字节打印的头是什么样子的?是否返回了HTTP
200
响应代码,或者是另一个响应代码,可能是3xx重定向到另一个URL?大小\u t未签名。recv()和read()系统调用会在出错时返回-1值,这会混淆程序逻辑。htons()需要整数参数,PORT是字符串常量。
statu = (recived_len==BUFSIZ-1) ? 0 : 1;
if (statu) break;