1extern crate fahrenheit;
2extern crate futures;
3
4use fahrenheit::AsyncTcpListener;
5use fahrenheit::AsyncTcpStream;
6use futures::io::AsyncReadExt;
7use futures::stream::StreamExt;
8use std::net::SocketAddr;
9
10async fn listen(addr: &str) {
11 let addr: SocketAddr = addr.parse().unwrap();
12 let listener = AsyncTcpListener::bind(addr).unwrap();
13 let mut incoming = listener.incoming();
14
15 while let Some(stream) = incoming.next().await {
16 fahrenheit::spawn(process(stream));
17 }
18}
19
20async fn process(mut stream: AsyncTcpStream) {
21 let mut buf = vec![0; 10];
22 let _ = stream.read_exact(&mut buf).await;
23 println!("{}", String::from_utf8_lossy(&buf));
24}
25
26fn main() {
27 fahrenheit::run(listen("127.0.0.1:12345"))
28}