Type Definition daemon_engine::tcp::TcpServer
source · Expand description
TcpServer is a Server implementation over TcpStream and TcpInfo types with a generic codec
use std::net::{SocketAddr, IpAddr, Ipv4Addr};
extern crate tokio;
use tokio::prelude::*;
use tokio::{spawn, run};
#[macro_use]
extern crate serde_derive;
extern crate daemon_engine;
use daemon_engine::{TcpServer, JsonCodec};
#[derive(Debug, Clone, Serialize, Deserialize)]
struct Request {}
#[derive(Debug, Clone, Serialize, Deserialize)]
struct Response {}
let addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 8111);
let server = future::lazy(move || {
let mut s = TcpServer::<JsonCodec<Response, Request>>::new(&addr).unwrap();
let server_handle = s
.incoming()
.unwrap()
.for_each(move |r| {
println!("Request data {:?} info: {:?}", r.data(), r.info());
r.send(Response{}).wait().unwrap();
Ok(())
}).map_err(|_e| ());
spawn(server_handle);
Ok(())
});
run(server);