gpt4 book ai didi

C: tcp recv 不清除旧数据

转载 作者:太空宇宙 更新时间:2023-11-04 05:55:05 25 4
gpt4 key购买 nike

我在 server.c 中有以下代码

while (1) {
char msg[1024];
recv(fd, msg, 1024, 0);
}

首先,我从客户端发送了“hello world”。

然后我在服务器中收到“hello world”。

然后我将“hexx”发送到服务器。

但是我在服务器上收到了“hexxo world”。

好像 msg 没有完全清除。

请让我知道我做错了什么。

干杯。

最佳答案

您正在为消息分配 1024 字节并且从不将该数据归零。您只是一遍又一遍地读入同一个缓冲区。第一遍它读取“hello world”,第二遍你将“hexx”放在相同的起始地址中,导致“hexxo world”

正如 DoxyLover 提到的,您可以 null 终止新读取的字符串并获得您要查找的内容。

关于C: tcp recv 不清除旧数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29505955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com