use futures::prelude::*;
use runtime::net::TcpListener;
#[runtime::main]
async fn main() -> std::io::Result<()> {
let mut listener = TcpListener::bind("127.0.0.1:8080")?;
println!("Listening on {}", listener.local_addr()?);
listener
.incoming()
.try_for_each_concurrent(None, |stream| {
async move {
runtime::spawn(async move {
println!("Accepting from: {}", stream.peer_addr()?);
let (reader, writer) = &mut stream.split();
reader.copy_into(writer).await?;
Ok::<(), std::io::Error>(())
})
.await
}
})
.await?;
Ok(())
}