Module framecodecs::remote_addr [] [src]

Wrapper protocol for providing remote address of connection.

extern crate tokio_proto;
extern crate framecodecs;
extern crate service_fn;
 
use tokio_proto::TcpServer;
use tokio_proto::pipeline::Pipeline;
use framecodecs::delimiter::{DelimiterCodec, LineDelimiter};
use framecodecs::remote_addr::RemoteAddrProto;
use std::net::SocketAddr;

let codec = DelimiterCodec::new(LineDelimiter::Lf);
let proto = RemoteAddrProto::<_, Pipeline>::new(codec);
TcpServer::new(proto, "0.0.0.0:8000".parse().unwrap()).serve(|| {
    Ok(service_fn::service_fn(|(addr, line): (SocketAddr, Vec<u8>)| {
        println!("{}: {}", addr, String::from_utf8_lossy(&line));
        Ok(line)
    }))
});

Structs

RemoteAddrCodec

Protocol codec used by RemoteAddrProto.

RemoteAddrProto

A wrapper protocol provides remote address of connection. This protocol implements only ServerProto.