diff options
Diffstat (limited to 'async-await/src/echo_server.rs')
-rw-r--r-- | async-await/src/echo_server.rs | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/async-await/src/echo_server.rs b/async-await/src/echo_server.rs deleted file mode 100644 index 63e10e31..00000000 --- a/async-await/src/echo_server.rs +++ /dev/null @@ -1,42 +0,0 @@ -#![feature(await_macro, async_await)] - -use tokio::async_wait; -use tokio::net::{TcpListener, TcpStream}; -use tokio::prelude::*; - -use std::net::SocketAddr; - -fn handle(mut stream: TcpStream) { - tokio::spawn_async(async move { - let mut buf = [0; 1024]; - - loop { - match async_wait!(stream.read_async(&mut buf)).unwrap() { - 0 => break, // Socket closed - n => { - // Send the data back - async_wait!(stream.write_all_async(&buf[0..n])).unwrap(); - } - } - } - }); -} - -#[tokio::main] -async fn main() { - use std::env; - - let addr = env::args().nth(1).unwrap_or("127.0.0.1:8080".to_string()); - let addr = addr.parse::<SocketAddr>().unwrap(); - - // Bind the TCP listener - let listener = TcpListener::bind(&addr).unwrap(); - println!("Listening on: {}", addr); - - let mut incoming = listener.incoming(); - - while let Some(stream) = async_wait!(incoming.next()) { - let stream = stream.unwrap(); - handle(stream); - } -} |