Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::net::SocketAddr;
- use tokio::sync::mpsc::{channel, Receiver, Sender};
- use tokio::{net::TcpListener, prelude::*};
- fn main() {
- let addr = "127.0.0.1:8118".parse::<SocketAddr>().unwrap();
- let listener = TcpListener::bind(&addr).expect("unable to bind");
- let (sender, _): (Sender<char>, Receiver<char>) = channel(64);
- tokio::run(
- listener
- .incoming()
- .and_then(|s| tokio::io::read_to_end(s, vec![]))
- .map_err(|e| panic!("failed: {:?}", e))
- .for_each(move |(_socket, buf)| {
- let s = sender.clone();
- println!("Received: {:#?}", buf);
- let c = buf[0] as char;
- s.send(c).map_err(|e| panic!("failed: {:?}", e)).map(|_| ())
- }),
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement