Muchas gracias nuevamente, jejeje
Al final lo solucioné de otra forma:
Código:
private void ComprobarEstadoClientes()
{
while (true)
{
Socket[] objLista = new Socket[listaSockets.Count];
listaSockets.CopyTo(objLista);
foreach (Socket objSocket in objLista)
{
if (objSocket.Poll(2000, SelectMode.SelectRead))
{
if (FinConexion != null)
{
string ipClienteConectado = ((IPEndPoint)objSocket.RemoteEndPoint).Address.ToString();
int puertoClienteConectado = ((IPEndPoint)objSocket.RemoteEndPoint).Port;
FinConexion(ipClienteConectado, puertoClienteConectado);
}
EliminarSocket(objSocket);
}
}
}
}
private void EliminarSocket(Socket objSocket)
{
listaSockets.Remove(objSocket);
}