3

我想从中读取数据,TcpStream直到遇到“\ 0”。问题是tokio::io::read_until需要流是BufRead.

fn poll(&mut self) -> Poll<(), Self::Error> {
    match self.listener.poll_accept()? {
        Async::Ready((stream, _addr)) => {
            let task = tokio::io::read_until(stream, 0, vec![0u8; buffer])
                 .map_err(|_| ...)
                 .map(|_| ...);
            tokio::spawn(task);
        }
        Async::NotReady => return Ok(Async::NotReady),
    }
}

我怎样才能从TcpStream这种方式读取数据?

4

1 回答 1

4

阅读 的文档BufRead,您将看到以下文本:

如果你有实现的东西Read,你可以使用BufReader类型把它变成BufRead.

fn example(stream: TcpStream) {
    io::read_until(std::io::BufReader::new(stream), 0, vec![]);
}
于 2018-11-18T13:51:59.073 回答