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);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…