Linux Socket重新读取旧数据

0 c linux

我正在编写一个Linux套接字程序,当我从套接字读取数据时,我的缓冲区中的先前读取中包含旧数据值.我正在使用read()调用,但我也尝试过recv(),两者都会导致同样令人沮丧的错误.以下是三个读取调用:

read(client_sock, &test, sizeof(test));

read(client_sock, &test2, sizeof(test2));

read(client_sock, &test3, sizeof(test3));

test,test2和test3都是char,并且正在尝试读取客户端写入的char值.任何帮助将不胜感激.

pau*_*sm4 5

我怀疑问题是你假设你的读取成功,并且你读取的数据和你要求的一样多.

这不一定是这种情况!

完全,绝对,肯定需要从"read()"获得返回值.它可能比您的缓冲区少,它可能是"-1"(错误).