writev发送数据失败
最近项目上遇到一个问题,curl请求服务器阻塞了。
我初步怀疑是服务器没有下发数据,通过GDB调试,发现调试到writev函数时就是跳过,怀疑是writev函数出现问题。
1.我检查了一下自己的套接字是否已经被破坏,经过判断没有;
2.怀疑数据在TCP缓冲区里,特地设置TCP_NODELAY,没有产生效果;
3.抓包分析报文数据,看看能否找到有用信息,结果发现实际上服务器数据早就发送了,是客户端阻塞了
结论:HTTP请求有报文体时,必须设置Content-Length,否则客户端会一直阻塞。
备注:writev函数在GDB调试时略过时正常现象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 常用控件二