2

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.

Community
  • 1
  • 1
Bruce
  • 461
  • 1
  • 8
  • 17

2 Answers2

3

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);
Shepmaster
  • 388,571
  • 95
  • 1,107
  • 1,366
Bruce
  • 461
  • 1
  • 8
  • 17
0

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.

brandonchinn178
  • 519
  • 3
  • 20