miércoles, 11 de enero de 2017

CocodriloChat: Chat en JAVA old school empleado Sockets e Hilos



El siguiente es un proyecto que realicé hace unos cuantos años en la universidad. Básicamente la idea era desarrollar un chat estable y multiplataforma, que permitiese múltiples conexiones a través de un servidor que estaba (en ese momento) hospedado en mi casa con un DNS dinámico. 

El proyecto todavía se puede mejorar, de hecho las últimas modificaciones tenían como objetivo la inclusión de emoticonos y ya los paquetes están creados. Creo que le puede ser de mucha utilidad a estudiantes y a personas que estén iniciando (o bueno, ya esto es un nivel medio-avanzado) en el mundo de la programación. De igual forma, les dejo la descripción del proyecto y como siempre, cualquier duda al momento de compilar o modificar pueden dejarla en los comentarios. 


CocodriloChat: Idea del Proyecto

La motivación para la realización de este proyecto es aumentar nuestros conocimientos en el manejo del lenguaje de programación, además de implementar el manejo de nuevos métodos y clases que no se han dado en el contenido de la carrera tales como Los Sockets e Hilos dentro de JAVA.

La implementación del programa servidor sigue las siguientes ideas:
  1. Se inicia el servidor
  2. El servidor se mantiene escuchando cualquier petición de un cliente para conectarse.
  3. El servidor acepta al cliente.
  4. El servidor lanza un hilo de comunicación con el cliente.
  5. Por el hilo se envían y reciben mensajes a través del servidor entre todos los clientes.
  6. Si el cliente cierra la comunicación el hilo se rompe y se corta la comunicación con ese cliente.
Para esto se ha empleado objetos de la clase ServerSocket y Socket para el servidor y cliente respectivamente que permiten la conexion entre cliente y servidor mientras que los Hilos sirven para hacer que el servidor se mantenga escuchando y no interrumpa su proceso mientras los clientes se comunican a través de mensajes.

A continuación unas definiciones:

Sockets: Los sockets no son más que puntos o mecanismos de comunicación entre procesos que permiten que un proceso hable ( emita o reciba información ) con otro proceso incluso estando estos procesos en distintas máquinas. Esta característica de interconectividad entre máquinas hace que el concepto de socket nos sirva de gran utilidad.
 
Hilos: Un hilo es un flujo de ejecución de código, y mediante hilos, podemos hacer que nuestros programas aparentemente realicen varias tareas al mismo tiempo.Por ejemplo, un código podría interaccionar con el usuario mientras realiza tareas de segundo plano de gran consumo de tiempo.Los hilos separados realmente no se ejecutan al mismo tiempo(a menos que se tenga una maquina multiprocesador); en realidad cada hilo obtiene secuencias de tiempo del mismo procesador.

Capturas: 


Pantalla de conexión 

Interfaz del chat

Selección de Avatares

Consola del servidor


Kikeex

Programador web, soporte IT y especialista en seguridad informática. Amante de la tecnología, enemigo de las pseudo ciencias y el conformismo. Irreverente, directo y bastante honesto con mis opiniones.

0 comentarios:

Publicar un comentario

 

Copyright @ 2017 Pwned!!.