Bonjour,

Je suis en train de faire un serveur. Le hic est que je n'arrive pas a détecter une déconnection. L'user rentre une phrase et le serveur lui renvoit, et, si il se déconnecte avec ctrl-c le serveur renvoit en boucle infinie cette phrase.
La fonction en question:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
fn handle_client(mut stream: TcpStream) {
    let mut data = [0 as u8; 50]; 
    let loggin_banner = b"Login:";
 
    stream.write(loggin_banner).unwrap();
 
    while match stream.read(&mut data) {
        Ok(size) => {
 
            let s = String::from_utf8_lossy(&data);
            println!("result: {}", s);
 
            stream.write(&data[0..size]).unwrap();
            true
        },
 
        Err(e) if e.kind() == ErrorKind::ConnectionAborted => {
            println!("Client disconnected");
            false
        }
        Err(e) => {
            println!("Some other error occurred: {e}");
            false
        }
    } {}
}