Los comandos que Ud. debe programar son los siguientes:
java Cartero
url: Lanza el cartero.
El parámetro url es el identificador del cartero y es de la
forma rmi://
host/
etiqueta,
en donde host es la ubicación del registro de RMI.
java Consola
url usuario: Lanza una
consola que recibe los mensajes dirigidos al usuario usuario
y recibidos por el cartero identificado como url. los mensajes
apareceran en la salida estandar con el formato:
El usuario termina la consola con control-C.
From juan: ... texto ...
java Enviar
url emisor
receptor texto: El usuario emisor envía
el mensaje texto al usuario receptor por medio del
cartero url.Entrega algún mensaje de error si no existe ninguna consola creada para el receptor o si el receptor ya no se encuentra conectado al cartero.
java Listar
url: Entrega una lista de las
personas que actualmente se encuentran conectadas al cartero
identificado como url.
El cartero invoca remotamente el objeto C cada vez que se recibe un mensaje destinado a esa consola y le entrega el nombre del emisor y el texto del mensaje.
Para cada consola que contacta el cartero se registra el nombre del usuario, la referencia del objeto C y el instante en que ocurrió el último contacto. Cuando se pide listar los usuarios o se envía un mensaje a un usuario, el cartero verifica que no hayan transcurrido más de 2 segundos desde el último contacto, de lo contrario se considera que esa consola es inválida y se borra.
En el cartero, utilice la llamada System.currentTimeMillis()
para obtener el tiempo transcurrido desde el inicio del proceso (en
milisegundos). En el método main
de la consola invoque
Thread.sleep(30000)
para hacer la pausa de 30 segundos que
se requiere antes de renovar la subscrición al cartero.
Cualquier tipo de consultas con respecto a este enunciado son bienvenidas en el grupo de news uch.ing.cursos.cc60h con copia a mi dirección e-mail. Yo responderé cuanto antes en el grupo y directamente al e-mail del que hace la consulta.