在tokio.rs文档中,我们看到以下代码段
// split the socket stream into readable and writable parts
let (reader, writer) = socket.split();
// copy bytes from the reader into the writer
let amount = io::copy(reader, writer);
我假设split
确实是Stream::split
,但由于信息流页面未提及{{1},因此我无法弄清楚该特征如何应用于TcpStream
},反之亦然。
答案 0 :(得分:2)
tokio::net::TcpStream
实现AsyncRead
。
AsyncRead
提供的一种方法是split()
:
fn split(self) -> (ReadHalf<Self>, WriteHalf<Self>)
where
Self: AsyncWrite,
因此,在这种情况下,它不是您的问题所建议的Stream::split
,因为根据您的观察,tokio::net::TcpStream
不是Stream
的实现者。