mod args; mod handler; mod database; use std::net::TcpListener; use std::thread; fn main() { let args = args::parse_args(); let listener = match TcpListener::bind(format!("{}:{}", args.ip, args.port)) { Ok(l) => l, Err(e) => { eprintln!("Failed to bind to {}:{}: {}", args.ip, args.port, e); std::process::exit(1); } }; println!("Server listening on {}", listener.local_addr().unwrap()); for stream in listener.incoming() { let stream = stream.unwrap(); thread::spawn(move || { handler::handle_client(stream); }); } }