/// <summary> /// Remove a client. /// </summary> /// <param name="client"></param> /// <returns></returns> public bool RemoveClient(ClientWorker client) { // Collection is not thread-safe. Lock it... lock (this) { return _clients.Remove(client); } }
/// <summary> /// Removes mysterious duplicates in our list. /// </summary> /// <param name="client"></param> public void RemoveDuplicates(ClientWorker client) { if (RemoveClient(client)) { LogConsole("removed mysterious duplicate.", client.LocalIPEndPoint); } }
/// <summary> /// Creates a new client. /// </summary> /// <param name="socket"></param> public void CreateNewClient(Socket socket) { ClientWorker newClient = new ClientWorker(socket); newClient.PacketReceivedEvent += new PacketReceivedEventHandler(PacketReceived); newClient.ClientDisconnectedEvent += new ClientDisconnectedEventHandler(ClientDisconnected); RemoveDuplicates(newClient); _clients.Add(newClient); LogConsole("connected.", newClient.LocalIPEndPoint); }