summaryrefslogtreecommitdiff
path: root/src/bin/server.rs
blob: 71541f8824eeb2dbfbfb6bbd36dbaa7fe9e1b63f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use std::io::prelude::*;
use std::net::{TcpListener, TcpStream};

extern crate space;
use space::connection::Connection;

fn main() {
    let listener = TcpListener::bind("localhost:6000").unwrap();
    listener.set_nonblocking(true);

    let mut connections = Vec::new();
    loop {
        for stream in listener.incoming() {
            match stream {
                Ok(stream) => connections.push(Connection::new(stream)),
                _ => (),
            }
            for i in 0..connections.len() {
                connections[i].process();
            }
            connections.retain(|connection| connection.open );
        }
    }
}