writev发送数据失败

最近项目上遇到一个问题,curl请求服务器阻塞了。

我初步怀疑是服务器没有下发数据,通过GDB调试,发现调试到writev函数时就是跳过,怀疑是writev函数出现问题。

1.我检查了一下自己的套接字是否已经被破坏,经过判断没有;

2.怀疑数据在TCP缓冲区里,特地设置TCP_NODELAY,没有产生效果;

3.抓包分析报文数据,看看能否找到有用信息,结果发现实际上服务器数据早就发送了,是客户端阻塞了

结论:HTTP请求有报文体时,必须设置Content-Length,否则客户端会一直阻塞。

备注:writev函数在GDB调试时略过时正常现象。

posted on   寒魔影  阅读(11)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
历史上的今天:
2019-10-19 Sword 计算机内存对齐
2019-10-19 C语言 运算符优先级
2018-10-19 Linux 文件编码格式转换
2018-10-19 Sword websocket分析二
2018-10-19 Sword websocket分析一
2016-10-19 QT 常用控件二

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示