Cita:
Iniciado por Fuzzylog Pues analiza que ocurre cuando la IP es externa.
1º se debería guardar en el map datos.
2º al comparar que sale. ¿Hace lo que debe hacer?
3º igual hay que mandar alguna clase de respuesta a la máquina externa para que se entere de que se ha desconectado y el cliente actualice la interfaz.
Pues todo ello, ya lo hice y en teoría debió haber funcionado de esa forma pues indicaba al servidor que deseaba desconectar mi maquina cliente con la IP y el Puerto tal, sin embargo no lo hacia, así que decidí darle otro enfoque, pues si el servidor hace que el cliente obedezca, el cliente podría hacer lo mismo, por lo cual implemente un misma función pero en sentido inverso y funciono dejo el código por si a alguien le sirve;
Como envía instrucciones el Servidor al Cliente:
Código Java:
Ver original//Toma la ip del cliente al cual se le ordena el siguiente comando
Registry registry
= LocateRegistry.
getRegistry(ip,
1090);//Busca la ip en su tabla de registros e indica el puerto IClienteRemoto clienteRemoto = (IClienteRemoto) registry.lookup(ip);
clienteRemoto.mensaje("BLOQUEAR");//La accion que el cliente ejecutara
}
Como revise el Cliente la instrucción del Servidor:
Código Java:
Ver original boolean estado = false;
// System.out.println("DEBUG: "+accion);
if(accion.equals("BLOQUEAR")) {
CCliente.bloquearPC();
estado = true;
}
if(accion.equals("DESBLOQUEAR")){
CCliente.desbloquearPC();
estado = true;
}
if(accion.equals("APAGAR")){
CCliente.apagarPC();
estado = true;
}
if(accion.equals("REINICIAR")){
CCliente.reiniciarPC();
estado = true;
}
if(accion.equals("CANCELAR")){
CCliente.cancelarPC();
estado = true;
}
return estado;
}
Por lo tanto implemente solo modifique la clase desconectar del Servidor para que reciba la instrucción del cliente:
Código Java:
Ver original try {
Registry registro
= LocateRegistry.
getRegistry(ip_des, port
);//Indico la ip y el puerto por el cual se dirigirá IConexion servidorRemoto = (IConexion) registro.lookup("Servidor");
servidorRemoto.desconectarse(accion,ip_me);
CCliente.actualizarEstado("Desconectado");//Le digo a cliente que actualize su interfaz a Desconectado
Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex);
}
}
Bueno eso es todo espero sea de ayuda para alguien mas
Y gracias por la atención prestada al tema