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 } } {} }
Partager