Hi,
I'm (still) having a little bit of trouble understanding the BufReader
. I know that functions like read_line
and read_to_string
read until an EOF. Yet when I do that, my program just deadlocks (basically it hangs).
I'm running a server TCP server, which sends an challenge string to incoming connections. These challenge strings end with '\n'.
What I've tried:
let addr = "127.0.0.1:50000".parse::<SocketAddr>().unwrap();
let mut stream = TcpStream::connect(addr).unwrap().take(248);
let mut line = String::new();
stream.read_to_string(&mut line);
print!("{}", line);
I've also tried this:
let addr = "127.0.0.1:50000".parse::<SocketAddr>().unwrap();
let mut stream = TcpStream::connect(addr).unwrap();
let mut reader = BufReader::new(stream);
let mut line = vec![];
&reader.read_until(b'\n', &mut line);
Yet that doesn't seem to work either. Can I somehow specify that it should read until an certain delimiter? I just want to manipulate the string that is being returned.