作者:围脖上的博博_771 | 来源:互联网 | 2023-05-18 06:16
要发送的数据超过了send函数设定的缓冲区大小,如我要发送1030个字节,而服务器端接收的缓冲区设为1024,执行后,服务器端收到了部分数据(我想应该是1024个字节),但是客户端send函数返回的值
要发送的数据超过了send函数设定的缓冲区大小,如我要发送1030个字节,而服务器端接收的缓冲区设为1024,执行后,服务器端收到了部分数据(我想应该是1024个字节),但是客户端send函数返回的值小于0,显示发送失败!请大侠解释一下。是不是发送的数据一定要是服务器端缓冲区大小的整数倍啊,如果不是整数倍,该怎么解决?
8 个解决方案
在内核里面会实现缓冲区,应用层的缓冲区没有压力,找找是不是程序有问题
客户端发送1030字节,服务器缓冲区1024,则需要至少执行两次recv接收才能接完,如果只执行了一次,客户端如果没错的话可能就是超时了,因为可能还有6个字节迟迟没有被服务端接收。
但照理这样的话不应该返回负值,而应该是返回成功发送的字节说,所以建议重点检查一下客户端部分。
缓冲区设成多少都没有关系,发送失败不是这个原因,取一下lasterror看看
谢谢~~确实是理论知识不足。。。现在是拿着代码一点点研究。
额~怎样给分啊???