public ConnectionServer(Int32 port, IServerListener serverListener) { IPAddress addr = GetLocalIPv4(); listener = serverListener; server = new TcpListener(addr, port); server.Start(); connectionThread = new Thread(delegate() { while (true) { lock(connectionThread) { if (!running) break; } TcpClient client = server.AcceptTcpClient(); listener.onNewTcpConnection(client); } }); }