C语言winsocket编程recv函数接收数据问题

当recv函数读取的缓冲区数据长度(只有这么多数据)小于参数指定读取字节数时,recv将自动在后面补上一串0(不知道对不对?)。我现在想要的是这种情况下recv函数一直阻... 当recv函数读取的缓冲区数据长度(只有这么多数据)小于参数指定读取字节数时,recv将自动在后面补上一串0(不知道对不对?)。我现在想要的是这种情况下recv函数一直阻塞,直至接收足够数据才继续执行,不知道要怎么写? 展开
 我来答
linux001
2014-07-29 · TA获得超过1401个赞
知道大有可为答主
回答量:1665
采纳率:100%
帮助的人:1362万
展开全部
不对,除非你接收前把缓冲区置0 用RtlZeroMemory函数。
你可以在接收那里加判断啊,满足你的条件时继续执行,执行完成再重置缓冲区
追问
具体要怎么做呢
追答
就是循环接收数据啊,比如这样
RtlZeroMemory(bufs,1024);
while(TRUE)
{
recv();
if(接收到足够的数据)
{
处理数据...
//再次清空缓冲区
RtlZeroMemory(bufs,1024);
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式