Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. use std::net::SocketAddr;
  2. use tokio::sync::mpsc::{channel, Receiver, Sender};
  3. use tokio::{net::TcpListener, prelude::*};
  4.  
  5. fn main() {
  6. let addr = "127.0.0.1:8118".parse::<SocketAddr>().unwrap();
  7. let listener = TcpListener::bind(&addr).expect("unable to bind");
  8. let (sender, _): (Sender<char>, Receiver<char>) = channel(64);
  9.  
  10. tokio::run(
  11. listener
  12. .incoming()
  13. .and_then(|s| tokio::io::read_to_end(s, vec![]))
  14. .map_err(|e| panic!("failed: {:?}", e))
  15. .for_each(move |(_socket, buf)| {
  16. let s = sender.clone();
  17. println!("Received: {:#?}", buf);
  18. let c = buf[0] as char;
  19. s.send(c).map_err(|e| panic!("failed: {:?}", e)).map(|_| ())
  20. }),
  21. );
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement