Tarea 4: Chat en Java
Nombre: ChatServer, ChatClient: Servidor y cliente
para establecer un sistema de chat simple en Java
Sintaxis:
ChatServer <puerto_listen>
ChatClient <Usuario> <server> <puerto_server>
Descripción
El sistema pedido se compone de dos programas para ofrecer un sistema
simple de "Chateo" . ChatServer es el servidor que recibe las
conexiones de los clientes y establece comunicación entre ellos.
ChatServer acepta conexiones y distribuye entre todos los
conectados toda información que a él llegue. La
relación de orden vista por cada cliente debe ser preservada; es
decir, todos los clientes recibirán los mensajes de los otros
"chateros" en le mismo orden.
ChatClient es el cliente Java del sistema. Dispone de una interfaz
gráfica con dos zonas de texto. Una superior para ingresar los
textos a enviar al chat y una inferior donde los mensajes recibidos son
desplegados.
ChatClient tiene tres argumentos: el primero representa el nombre del
usuario a ser desplegado como prefijo de cada uno de sus mensajes,
luego viene el nombre o IP del host donde se encuentra el servidor, y
finalmente el puerto donde el Servidor Chat reside.
Nota: Revise y estudie el ejemplo visto en clases para un servidor
múltiple en Java. Recomiendo que usted cree una clase
llamada Distribuidor. Esta clase tiene como atributo la lista de todos
los clientes que se han conectado al chat (usando ArrayList por
ejemplo). Además Distribuir contiene un método para
enviar un mensaje a cada uno de los clientes conectados. Este
método puede ser sincronizado (Para qué?). Cada
hilo del servidor debería tener una referencia a
Distribuidor, de modo que luego de recibir un mensaje a
través de una conexión, Distribuir lo envía a
todas las conexiones activas. Para el ChatClient considere una mirada a
la clase JTextField.
Qué entregar? En esta tarea usted deberá entregar:
Un Readme, el makefile, los programas fuente, y la
documentación generada en por javadoc a partir de los
rótulos que usted incorporará en su texto.