ELO-330: Programación de Sistemas
Tarea 4: Chat Grupal

Objetivos: En esta tarea usted ejercitará las siguientes competencias en Java: manejo de hebras, de comunicación cliente servidor usando TCP, de monitores y de interfaces gráficas.

Nombres: ChatServer y ChatClient: Servidor y cliente del chat grupal TCP
Sintaxis: java ChatServer <port>
    java ChatClient <User_name> <host_server> <port>

Descripción
   ChatServer es un servidor concurrente basado en hebras. Espera por un número no definido de clientes. Todo el texto recibido de cada cliente es re-enviado hacia todas las conexiones, incluyendo aquella desde la cual provino. De esta manera se comporta como un servidor de eco replicando hacia todos los clientes aquello que cada uno de ellos le haga legar. Los envíos deben presentarse en el mismo orden para todos los clientes.
  ChatClient presenta una interfaz gráfica con tres zonas. En la primera el usuario recibe todos los textos enviados por otros usuarios conectados al servidor. La segunda permite ingresar el texto que un usuario desea enviar al grupo. La tercera zona, incluye un botón ("Send") que permite enviar al grupo el texto ingresado. ChatClient antepone a cada mensage enviado el "user name" del primer argumento de ChatClient. De este modo el texto recibido permite reconocer el usuario que lo envió,

Evaluación de la Tarea y qué entregar: revisar procedimiento de entrega y criterios usados para evaluar su trabajo.

Ayuda:
   - Revise el servidor eco multihebras  y el ejemplo MailTest.java vistos en clases.
   - Revise la clase Vector de Java.
  - Haga su tarea de a poco y con tiempo. Con gusto atenderé todas sus preguntas en especial en clases y horas de atención!
  - Si tras una dificultad no logra avances por más de 30 minutos, espere la próxima clase, visíteme o escríbame. Con gusto procuraré ayudarlo.
  - Si tiene dudas del enunciado, lo aclararé con gusto y documentaré aquí.