Cannot display a SocketAddr returned by peer_addr()
我正在尝试打印TcpStream的peer_addr()返回的地址,但Rust给出了错误:
error: the trait
core::fmt::Display is not implemented for the typecore::result::Result [E0277]
src/main.rs:29 format!("New client {}", stream.peer_addr());
根据文档显示实现。
代码如下:
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 28 | use std::net::{TcpListener, TcpStream}; use std::thread; fn main() { let listener = TcpListener::bind("127.0.0.1:80").unwrap(); for stream in listener.incoming() { match stream { Ok(stream) => { thread::spawn(move|| { // connection succeeded handle_client(stream) }); } Err(e) => { println!("Accept err {}", e); } } } // close the socket server drop(listener); } fn handle_client(stream: TcpStream) { println!("New client {}", stream.peer_addr()); } |
如果仔细阅读了编译器错误,您会发现变量的类型为
1 | println!("New client {}", stream.peer_addr().unwrap()); |
当然