Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2013, 23:18
Avatar de Lichblitz
Lichblitz
 
Fecha de Ingreso: febrero-2012
Ubicación: Colombia - Sincelejo
Mensajes: 6
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Aplicacion distribuida con System.remoting y tcpchannels

Hola, saludos a todos.
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:
TcpServerChannel channel = new TcpServerChannel(9988);
            ChannelServices.RegisterChannel(channel, false);
            RemotingConfiguration.RegisterWellKnownServiceType(
                typeof(ImplemetacionInterfaz),
                "ServidorRemoto", WellKnownObjectMode.SingleCall);
En el cliente, se intenta conectar a la lista de equipos conectados que encuentra dinámicamente:

Código:
		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);
			}
¿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.

Gracias :)