Estoy creando una aplicación en C# en la que el cliente busca en la red los equipos que están activos y se conecta a los servidores remotos, el cliente les asigna a cada uno un trabajo y recibe la respuesta de cada uno de ellos. El problema que tengo es que cuando creo un canal en remoting utiliza un único puerto y no quiero abrir un puerto por cada equipo conectado, sería demasiado tedioso por la cantidad de equipos que se conectan a la red.
Éste es el código de cada servidor:
Código:
En el cliente, se intenta conectar a la lista de equipos conectados que encuentra dinámicamente:TcpServerChannel channel = new TcpServerChannel(9988); ChannelServices.RegisterChannel(channel, false); RemotingConfiguration.RegisterWellKnownServiceType( typeof(ImplemetacionInterfaz), "ServidorRemoto", WellKnownObjectMode.SingleCall);
Código:
¿Hay alguna forma de que me pueda conectar a varios servidores que tienen el canal abierto en el mismo puerto? Algo así como el Java RMI que no necesita tener que pasar el puerto en el cliente para conectarse.foreach (String nombreEquipo in equipos) { try { ChannelServices.RegisterChannel(new TcpClientChannel(),false); InterfazServidor resService = (InterfazServidor)Activator.GetObject( typeof(InterfazServidor ), "tcp://" + nombreEquipo + ":[puerto]/ServidorRemoto"); listaDeServidoresActivos.Add(resService); } catch (Exception e) { MessageBox.Show(e.Message); }
Gracias :)