Try using Dictionary<Endpoint, Socket> instead of List<socket>.
Then, we have a socket list like this:
Dictionary<EndPoint, Socket> activeSocketList = new Dictionary<EndPoint, Socket>();
We can also Add or Remove entity as using the List:
Socket socket = new Socket(IPAddress.Any.AddressFamily, SocketType.Stream, ProtocolType.IP);
EndPoint ep = new IPEndPoint(IPAddress.Parse("192.168.0.27"), 8080);
socket.Bind(ep);
activeSocketList.Add(socket.LocalEndPoint, socket);
socket.Close();
activeSocketList.Remove(ep);
Also we can use socket.RemoteEndPoint as the Key for "activeSocketList" after socket has connected.