jjzjj

BufReader

全部标签

sockets - 在 BufReader 中包装后无法从底层读取器读取数据

我的意图是访问TcpStream并在将TcpStream作为属性保存的结构的两种不同方法中执行两次读取操作。第一个操作执行良好,但是当我尝试在第二个方法上加载剩余字节时,无法填充缓冲区。我试图创建一个非常简单的游戏。这是它的工作原理:一些数据被发送到套接字(8字节)使用read和1字节大小的缓冲区读取1个字节。一切都很好。使用read_exact和1字节大小的缓冲区读取1个字节。一切都很好。1个字节应该被读取,在底层read对象(stream对象)上使用read_exact。无法填充缓冲区。如果我解包或具有初始值的缓冲区,我会收到错误消息。#[cfg(test)]modtests{us

rust - 如果 BufReader 取得流的所有权,我如何在其上读取和写入行?

我想从TCPStream中读取一行,向其中写入另一行,然后重复。问题是BufReader::new取得了我的TCPStream变量的所有权:letstream=...;//TCPStreamletreader=BufReader::new(stream);//moveditsvalue//can'tusestreamhereanymore有什么简单的解决方案? 最佳答案 解决方案:使用引用。letmutstream=...;letreader=BufReader::new(&stream);letwriter=BufWriter::