private void HandleAsyncConnection(IAsyncResult res) { StartAccept(); //listen for new connections again var clientSocket = Listener.EndAcceptTcpClient(res); var client = new Client(this, clientSocket); client.StartClient(); lock (syncGate) { Clients.Add(client); Console.WriteLine("New Client connected {0} => {1}", client.ClientSocket.GetHashCode(), client.ClientName); } }