Type Definition daemon_engine::udp::IncomingRx

source ·
pub type IncomingRx<REQ> = UnboundedReceiver<(REQ, SocketAddr)>;
Expand description
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::{UdpConnection, JsonCodec, DaemonError};
 
#[derive(Debug, Clone, Serialize, Deserialize)]
struct Request {}
 
#[derive(Debug, Clone, Serialize, Deserialize)]
struct Response {}
 
let addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8111);
let client = UdpConnection::<JsonCodec<Request, Response>>::new(&addr, JsonCodec::new()).unwrap();
let (tx, rx) = client.split();
// Send data
tx.send((Request{}, addr.clone())).wait().unwrap();
 
// Receive data
rx.map(|resp| -> Result<(), DaemonError> {
   println!("Response: {:?}", resp);
   Ok(())
}).wait().next();