小坑:recv之后,传入参数“长度”变化

2021-10-21 15:07:03 浏览数 (1)

缘起: 分包嘛,我就想判断一下收到的数据跟预定的数据是否一样长。 然后代码写成这样:

代码语言:javascript复制
int n = recv(fd, buf, lenth, 0);    //为什么走完这一步lenth就发生了突变
if (n != lenth)
{
    cout << "recv errno!" << endl; //这里应该写入日志,日志模块这不是还没开发嘛
    exit(-1);
}

然后就一直打印 recv errno!

然后我就去调试:

我本来后面的代码还用了 lenth 呢,不过现在看来不能用了,那要用什么?用n吗?如果分段接收,这个n会不会分段来啊?。。。那还怎么用,累加?


我发现我现在处理这些 bug 越来越波澜不惊了

0 人点赞