【发布时间】:2018-11-19 07:38:52
【问题描述】:
我想从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 读取数据?
【问题讨论】:
-
请查看如何创建minimal reproducible example,然后查看edit 您的问题以包含它。我们无法分辨代码中存在哪些 crate、类型、特征、字段等。尝试在Rust Playground 上重现您的错误,或者您可以在全新的 Cargo 项目中重现它。还有Rust-specific MCVE tips。
-
请包含您收到的确切错误消息。
-
我想我的问题对你来说很简单,所以没有必要提供这么多数据。今天有点赶时间,下次有时间。
标签: asynchronous tcp rust future rust-tokio