Code Monkey home page Code Monkey logo

tinac-chat's Introduction

T.I.N.A.C.

_______________________ /\ \ \_| TINAC | | This | | Is | | Not | | A | | Chat | | | | __________________|__ \_/____________________/

Un chat cliente-servidor desarrolado en Java utilizando Socket y ServerSocket.

No es muy útil porque solo es posible ejecutar servidor y clientes en un mismo equipo. Con algunas modificaciones puede que funcione en red local.

⚙ Ejecución

Dependencias

Este proyecto utiliza la librería flatlaf-3.3 para mejorar el aspecto de la interfaz gráfica.

Desde IntelliJ IDEA

Es el IDE que estoy utilizando para desarrollar el proyecto.

  • Permitir la ejecución de multiples instancias de Cliente
    1. Ir a la clase Cliente
    2. Arriba a la derecha, elegir clase Client e ir a Edit Configurations
    3. Build and run -> Modify options -> Allow multiple instances

Note

El código fuente ha sido comentado para facilitar la corrección

✨ Funcionalidades

Básico

  • Chat cliente-servidor
  • Implementación de salas
  • Identificación del cliente

Avanzado

  • Interfaz gráfica en Java Swing
  • El cliente puede envíar y recibir mensajes simultáneamente
  • Los mensajes se almacenan en memoria, cuando se une un nuevo cliente, se recuperan estos mensajes.
  • Los mensajes se almacenan encriptados en un fichero
  • Los usuarios eligen nombre y sala antes de entrar al chat

Sistema de Comandos

/help     Muestra los comandos
/quit     Sale del chat
/nick     Muestra el nick actual/cambia el nick
/room     Muestra sala actual/cambia de sala
/users    Muestra los usuarios conectados
/rooms    Muestra las salas activas
/netinfo  Muestra información acerca de la conexión

Posibles mejoras

  • Adaptar el código para que funcione en red local
  • En la interfaz gráfica, mostrar a un lado las salas activas

📚 Recursos utilizados

El proyecto parte de los apuntes de clase acerca de programación de comunicaciones en red, también he utilizado el código proporcionado en Acceso a datos para la encriptación de mensajes. Esta pregunta me ha servido de ayuda para comprobar que puertos están disponibles.

También he buscado en internet para la parte de Java-Swing, aunque no he guardado las fuentes. No he utilizado IAs.

🎥


Módulo: Programación de Servicios y Procesos
Lenguaje: Java
Tema: UT3: Programación de Comunicaciones en Red
Herramientas: 
  - IntelliJ Idea CE 2023.2.2
  - JDK 21
Fecha: 2024-02-15

tinac-chat's People

Contributors

cakeneka avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.