G.Bordel >Docencia >TAP Técnicas Actuales de Programación (curso 2010-2011)
desprotegido Intro. desprotegido Temario desprotegido Calendario desprotegido RPF desprotegido Recursos Práctica protegido Gest. Alum.
Desarrollo de pr�cticas

Ejercicio de Evaluación (Curso 2010-2011)

Esta práctica también se realizó en el curso 2007-2008.
y anteriormente en el curso 2004-2005.

El ejercicio final consiste en realizar un cliente de chat según las siguientes especificaciones:

  • Gui utilizando Swing
  • Los elementos mínimos serán: ventana de conversación, campo de introducción de texto, nick, lista de usuarios activos, menu de acciones.
  • Las acciones mínimas serán (aparte de la capacidad de visualizar conversaciones y participar en ellas): conectar con el servidor, terminar, abrir conversaciones privadas con otros usuarios, activar/desactivar captura de conversación en un fichero.
  • La capacidad de comunicación entre clientes estará soportada por un servidor que se proporciona más abajo, y por un protocolo soportado por intercambio de objetos. Estos objetos serán de la clase ChatProtocol que se encuentra dentro del fichero "jar" del servidor en el paquete "chat" (hacer "import chat.ChatProtocol;"). Se deberá por tanto utilizar este mismo "jar" como biblioteca al generar el cliente: javac -cp ChatServer.jar ... y para usarlo: java -cp ChatServer.jar ...). NOTA: si se quiere, puede extraerse esta clase del "jar", pero no debe olvidarse que debe residir en la carpeta/paquete "chat" (en su definición se ha especificado "package chat;")
  • Cada alumno deberá pensar en alguna característica particular que distinga a su cliente del resto de los presentados por sus compañeros. Esta puede ser meramente estética o bien funcional.
  • Los alumnos pueden plantear mejoras que necesiten soporte por parte del servidor. Estas serán atendidas en caso de considerarse interesantes ampliando las capacidades del servidor.
Diagrama de estados del servidor.
[Ver resultados entregados por los alumnos]

Notas sobre el servidor: limitaciones y cambios previstos.

SERVIDOR DE PARTIDA: 12/05/2008. Chat08 Versión 3.0 R3(servidor) (Javadoc)

Errores detectados:
R3: Al recibir EXIT de un cliente hace broadcast(OUT) y le responde EXIT para darle de baja cuando corte el socket. Debe darle de baja al recibir el EXIT, no esperar al corte del socket (permitir que corte el cliente y si no lo hace cortar trasn un timeout).
R3: Al parecer (no comprobado) si un cliente corta el socket sin enviar un EXIT el servidor no reacciona correctamente.
R3: Recorta los mensajes a 20 caracteres. El servidor lo hace en su log intencionadamente, pero este comportamiento se observa también en los clientes

Plataforma de soporte a curso y contenidos (c) German Bordel 2005.