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:
- Se inicia el servidor
- El servidor se mantiene escuchando cualquier petición de un cliente para conectarse.
- El servidor acepta al cliente.
- El servidor lanza un hilo de comunicación con el cliente.
- Por el hilo se envían y reciben mensajes a través del servidor entre todos los clientes.
- 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 |





0 comentarios:
Publicar un comentario