0
let listener = TcpListener::bind("localhost:1234").unwrap();
for stream in listener.incoming() {
let s = stream.unwrap();
handle_stream(s);
}
fn handle_stream(mut stream: TcpStream) ->() {
let mut buf = [0];
loop {
let _ = match stream.read(&mut buf) {
Err(e) => panic!("Got an error: {}", e),
Ok(m) => {
println!("Received {:?}, {:?}", m, buf);
if m == 0 {
// doesn't reach here.
break;
}
m
},
};
}
}
然後我通過運行curl http://localhost:1234
連接到服務器。如何防止讀取時阻塞TcpStream?
我預計Ok(0)
將被返回,但它沒有達到該聲明,而是掛起。如果這是一個EOF,在這種情況下我該如何處理?