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,在这种情况下我该如何处理?