Search code examples
tcpstreamtelnetrust

How do I handle parallel reads and writes on a TcpStream?


I read Idiomatic way to handle writes to a TcpStream while waiting on read, but I'm still unsure of how to handle this. I'm connecting to a Rust binary via Telnet and would like to send "commands" and receive "status". Almost like a simple echo server.


Solution

  • I ended up cloning the stream and it's working fine:

    let second_stream = stream.try_clone().expect("Cannot clone stream");
    let mut reader = BufferedReader::new(second_stream);
    let mut writer = BufferedWriter::new(stream);