我正在编写一个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值.任何帮助将不胜感激.
我怀疑问题是你假设你的读取成功,并且你读取的数据和你要求的一样多.
这不一定是这种情况!
完全,绝对,肯定需要从"read()"获得返回值.它可能比您的缓冲区少,它可能是"-1"(错误).