Identyfikacja obiektu typu Socket

0

Posiadając listę wszystkich połączonych z serwerem klientów:

private static List<Socket> _clients = new List<Socket>(); 

Chciałbym mieć możliwość dowolnego ich usuwania za pomocą metody

   
private static void kickClient(Socket client)
        {
            try
            {
                string text = "Serwer zakończył połączenie o: " + DateTime.Now.ToLongTimeString(); 
                send(client, text);
                client.Shutdown(SocketShutdown.Both);
                client.Close();
                _clients.Remove(client);
                connections--;
                Console.WriteLine("Klient został rozłączony...");
            }
            catch (SocketException se)
            {
                Console.WriteLine(se.ToString());
            }
        }

Dlatego moje pytanie brzmi, czy można jakoś sensownie identyfikować poszczególnych klientów za pomocą obiektu Socket? Rozwiązanie doraźne wygląd tak, że wybieram obiekt za pomocą jego indeksu z listy _clients.

np:

kickClient(_clients[1])

Ale to ma niestety niewielki sens, gdyż po każdym usunięciu obiektu z listy zmienia się jej indeksacja.

0

Może po IP i porcie?

0

Hmmm ...
W środowisku testowym wszystkie adresy IP będą takie same jedynie porty inne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1