13 use std::time::Duration; |
17 use std::time::Duration; |
14 |
18 |
15 fn main() { |
19 fn main() { |
16 env_logger::init(); |
20 env_logger::init(); |
17 |
21 |
|
22 let args: Vec<String> = env::args().collect(); |
|
23 let mut opts = Options::new(); |
|
24 |
|
25 opts.optopt("p", "port", "port - defaults to 46631", "PORT"); |
|
26 opts.optflag("h", "help", "help"); |
|
27 let matches = match opts.parse(&args[1..]) { |
|
28 Ok(m) => { m } |
|
29 Err(f) => { panic!(f.to_string()) } |
|
30 }; |
|
31 if matches.opt_present("h") { |
|
32 println!("-p/--port - defaults to 46631"); |
|
33 return; |
|
34 } |
18 info!("Hedgewars game server, protocol {}", utils::SERVER_VERSION); |
35 info!("Hedgewars game server, protocol {}", utils::SERVER_VERSION); |
19 |
36 |
20 let address = "0.0.0.0:46631".parse().unwrap(); |
37 let address; |
|
38 if matches.opt_present("p") { |
|
39 match matches.opt_str("p") { |
|
40 Some(x) => address = format!("0.0.0.0:{}", x).parse().unwrap(), |
|
41 None => address = "0.0.0.0:46631".parse().unwrap(), |
|
42 } |
|
43 } |
|
44 else { |
|
45 address = "0.0.0.0:46631".parse().unwrap(); |
|
46 } |
|
47 |
21 let listener = TcpListener::bind(&address).unwrap(); |
48 let listener = TcpListener::bind(&address).unwrap(); |
22 |
49 |
23 let poll = Poll::new().unwrap(); |
50 let poll = Poll::new().unwrap(); |
24 let mut hw_network = NetworkLayer::new(listener, 1024, 512); |
51 let mut hw_network = NetworkLayer::new(listener, 1024, 512); |
25 hw_network.register_server(&poll).unwrap(); |
52 hw_network.register_server(&poll).unwrap(); |