public void StartServer()
{
if (_listener != null)
{
throw new InvalidOperationException("Cannot restart server.");
}
IPAddress address = IPAddress.Loopback;
_listener = new TcpListener(address, _port);
_listener.Start(1);
_log.WriteLine("[Server] waiting for connections ({0}:{1})", address, _port);
_port = ((IPEndPoint)_listener.LocalEndpoint).Port;
}