extern crate utp;
extern crate env_logger;
use utp::{UtpListener, UtpSocket};
use std::thread;
fn handle_client(mut s: UtpSocket) {
let mut buf = [0; 1500];
match s.recv_from(&mut buf) {
Ok((nread, src)) => {
println!("<= [{}] {:?}", src, &buf[..nread]);
let _ = s.send_to(&buf[..nread]);
}
Err(e) => println!("{}", e)
}
}
fn main() {
env_logger::init().expect("Error starting logger");
let addr = "127.0.0.1:8080";
let listener = UtpListener::bind(addr).expect("Error binding listener");
for connection in listener.incoming() {
match connection {
Ok((socket, _src)) => { thread::spawn(move || { handle_client(socket) }); },
_ => ()
}
}
}