recv返回的长度正确,但是缓冲区的数据不正确

xiaoji0507 xiaoji0507 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如题
char Stream[MAXLEN];
int len;
memset(Stream, '\0', MAXLEN);
len = recv(client, Stream, MAXLEN, 0);
printf("recieve len=%d,stream len=%d\n", len,strlen(Stream));
len的长度是正确的,但是Stream的长度小于len的长度。服务器发过来的数据是压缩过的,带有中文。uft-8编码。
MAXLEN 是1024 大于服务器返回的长度。

请问有神马原因可能导致此问题。有时候Stream的长度又是正确的。

是不是因为压缩的时候将某些字符变成了\0的原因。没有压缩的数据recv都是正常的。
...全文

相关推荐

评论 16
收藏 已收藏
分享
返回顶部
xiaoji0507
C语言 70,040 成员 243,237 内容