Lo primero que se necesita para hacer un chat seria establecer un medio por el cual se pudieran comunicar tanto el cliente como el servidor. Basándonos en este principio usaremos la comunicación por sockets como en java nos permite. Esto nos permitirá tener acceso a los puertos que estén abiertos o listos para escuchar y así mismo usar puertos para enviar los mensajes.
El chat se basa en el método de comunicación de dos vías en el cual ambos escuchan y hablan a la par o al mismo tiempo. Para esto tendremos que hacer uso de hilos de ejecución o threads, usaremos un hilo para cada una de las actividades a realizar, así usaremos un hilo para escuchar y otra para hablar para cada uno de los usuarios tanto el cliente como el servidor.
Lo primero que haremos es establecer el servidor que va a proveer el servicio:
Aqui podemos ver que usaremos el socket del puerto 5000 para establecer la comunicacion.
Despues de tener el servidor ya podemos crear el cliente:
El cliente estara usando el mismo puerto de comunicacion el 5000, pero este hace una llamada a el servidor estableciendo su ip 127.0.0.1.
Ahora definiremos los hilos de ejecucion para enviar mensajes por medio del servidor:
Aqui notamos que si al momento que intenta hacer la conexion falla nos notificara con un mensaje de errror, al igual que si al enviar el mensaje se pierde la conexion este nos lo reportara de igual manera.
Lo siguiente es crear el hilo de recepcion de los mensajes en la parte del servidor:
En esta parte tenemos los mismos mensajes de error en caso fallido, aqui se puede observar que se mantiene abierto el canal a la espera de mensajes.
Ahora tendremos que realizar los hilos de enviar y recibir de igual manera pero en el lado del cliente:
Y listo ya tenemos nuestro chat creado y listo para enviar y recibir unilateralmente.
En este tipo de proyecto se usan hilos de ejecucion por que nos permiten mantener una secuencia de ejecucion hasta que esta no tenga los requerimientos necesarios para mantenerse en ejecucion, lo que permite que se incie una vez y se mantenga asi en proceso hasta que se de por terminado.
No hay comentarios.:
Publicar un comentario