@ -41,11 +41,17 @@ pub fn ip_echo_server(tcp: std::net::TcpListener) -> IpEchoServer {
|
|||||||
let server = tcp
|
let server = tcp
|
||||||
.incoming()
|
.incoming()
|
||||||
.map_err(|err| warn!("accept failed: {:?}", err))
|
.map_err(|err| warn!("accept failed: {:?}", err))
|
||||||
.for_each(move |socket| {
|
.filter_map(|socket| match socket.peer_addr() {
|
||||||
let peer_addr = socket.peer_addr().expect("Expect peer_addr()");
|
Ok(peer_addr) => {
|
||||||
info!("connection from {:?}", peer_addr);
|
info!("connection from {:?}", peer_addr);
|
||||||
|
Some((peer_addr, BytesCodec::new().framed(socket)))
|
||||||
let framed = BytesCodec::new().framed(socket);
|
}
|
||||||
|
Err(err) => {
|
||||||
|
info!("peer_addr failed for {:?}: {:?}", socket, err);
|
||||||
|
None
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.for_each(move |(peer_addr, framed)| {
|
||||||
let (writer, reader) = framed.split();
|
let (writer, reader) = framed.split();
|
||||||
|
|
||||||
let processor = reader
|
let processor = reader
|
||||||
|
Reference in New Issue
Block a user