martes, 15 de marzo de 2011

Hacer un chat con "4 funciones"

Ya he acabado la implementación de un chat, al menos eso creo. Muchas vueltas a la cabeza y al final la solución me ha quedado relativamente corta.

Por una parte, la clase Cliente, la cual simplemente crea el socket para conectarse al servidor y una instancia de una clase que la he llamado Vista, que recibirá ese socket y el nombre del usuario.
La clase vista crea el interfaz gráfico (de ahí su nombre) y las conexiones para leer y escribir en el socket (BufferedReader y PrintWriter). Además crea un hilo para ir leyendo los mensajes y ponerlos en pantalla y un ActionListener para que cuando se pulse el botón envie el mensaje en el PrintWriter.

La otra parte es la clase Servidor, una clase que define su socket y tiene un bucle infinito que va escuchando peticiones de clientes, y para cada petición crea una instancia de una clase llamada "EnvioDatos", la cual implementa a Runnable.
Esta clase se encarga de hacer llegar los mensajes a los demás clientes. La clave ha sido usar la clase Vector, la cual almacena hilos y podemos usar la sincronización para recorrerla y soltar el mensaje a todos los clientes.

Lo dicho, más lineas aquí que en el código ^^

No hay comentarios:

Publicar un comentario