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

后端 未结 2 1387
后悔当初
后悔当初 2020-12-20 07:42

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 woul

相关标签:
2条回答
  • 2020-12-20 08:10

    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);
    
    0 讨论(0)
  • 2020-12-20 08:15

    Just an update for Rust 1.1, this method no longer works. To make this work, I used stream.shutdown(Shutdown::Write) when I was finished with writing to the server socket. I don't know how I would do this if I had to repeatedly read and write from the same connection.

    0 讨论(0)
提交回复
热议问题