Как я могу прочитать до следующего Tokio :: net :: TcpStream в будущей цепочке? - PullRequest
0 голосов
/ 18 ноября 2018

Я хотел бы прочитать данные из 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 таким образом?

1 Ответ

0 голосов
/ 18 ноября 2018

Читая документацию для BufRead, вы увидите текст:

Если у вас есть что-то, что реализует Read, вы можете использовать BufReader тип , чтобы превратить его в BufRead.

fn example(stream: TcpStream) {
    io::read_until(std::io::BufReader::new(stream), 0, vec![]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...