C 网络编程 send recv函数缓冲区问题
要发送的数据超过了send函数设定的缓冲区大小,如我要发送1030个字节,而服务器端接收的缓冲区设为1024,执行后,服务器端收到了部分数据(我想应该是1024个字节),但是客户端send函数返回的值小于0,显示发送失败!请大侠解释一下。是不是发送的数据一定要是服务器端缓冲区大小的整数倍啊,如果不是整数倍,该怎么解决?
[解决办法]
客户端发送1030字节,服务器缓冲区1024,则需要至少执行两次recv接收才能接完,如果只执行了一次,客户端如果没错的话可能就是超时了,因为可能还有6个字节迟迟没有被服务端接收。
但照理这样的话不应该返回负值,而应该是返回成功发送的字节说,所以建议重点检查一下客户端部分。
[解决办法]
缓冲区设成多少都没有关系,发送失败不是这个原因,取一下lasterror看看