server/
server.rs

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}