openlegends-server 0.2.0

OpenLegends Game Server
mod connection;

use std::{env, io::Result, net::TcpListener, thread};

fn main() -> Result<()> {
    let address = format!(
        "{}:{}",
        env::args().nth(1).unwrap(), // @TODO handle
        env::args().nth(2).unwrap()
    );

    let listener = TcpListener::bind(&address)?;
    println!("server listening on {}", address);

    for stream in listener.incoming() {
        match stream {
            Ok(stream) => {
                println!("new client connected: {}", stream.peer_addr()?);
                thread::spawn(|| {
                    connection::handle(stream);
                });
            }
            Err(e) => {
                eprintln!("failed to accept connection: {}", e);
            }
        }
    }

    Ok(())
}