Как принять клиентский сокет и затем опросить TcpStream в mio?
Я не могу понять, как принять клиентский сокет, а затем начать опрос для событий на возвращенном TcpStream
с мио 0,6.
Я попробовал этот код, но событие для Token(1)
никогда не прибывает Хотя accept
часть распечатана, клиент мгновенно отключается.
loop {
poll.poll(&mut events, None).unwrap();
for event in events.iter() {
match event.token() {
Token(0) => {
match server.accept() {
Ok((stream, addr)) => {
println!("{}: accept {}", stream.as_raw_fd(), addr);
stream.register(&poll, Token(1), Ready::readable(), PollOpt::edge() | PollOpt::oneshot()).unwrap();
}
Err(e) => {
println!("listener.accept() errored: {}", e);
return;
}
}
},
Token(1) => {
println!("event from 1")
}
_ => {
unreachable!()
}
}
}
}
Я понятия не имею, как сделать это правильно.