非阻塞方式socket send()返回大小和实际发送大小不一致
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了非阻塞方式socket send()返回大小和实际发送大小不一致相关的知识,希望对你有一定的参考价值。
碰到一个网络问题,发现tcp方式在非阻塞模式下,send的返回大小和实际发送大小不一致,设置增加发送缓冲区大小之后也没有好用,按tcp的理论应该是写到缓冲区,然后tcp自动分片,当缓冲区不够的时候返回实际写入的大小,测试后发现不是这种情况,跪求各位大侠指点一二~~
非阻塞模式是立即返回的,无法保证一次把包发完,所以发送时最好判断发送字节的多少,如果没有发送完成,继续调用发送接口发送 参考技术A 发送的是struct么?注意字节对齐的问题追问发送的是一块buffer,应该不存在字节对齐的问题
追答那贴代码吧,贴一部分也行啊
追问代码贴了一部分,见图片,谢谢
参考技术B 代码贴出来看看追问代码贴了一部分,见图片,谢谢
以上是关于非阻塞方式socket send()返回大小和实际发送大小不一致的主要内容,如果未能解决你的问题,请参考以下文章