Crea tu propio chat – Estructura

Publicado por Alejandro Escario en

Continuado con el posta anterior (¿Cómo funciona un chat? – Introducción) en el que comentábamos de una manera generalista cómo debería funcionar un chat que cumpliese una serie de mínimos, vamos a empezar a desarrollar nuestro entorno para programar:

Estableciendo un entorno de desarrollo

Para que el chat funcione correctamente y que podamos reutilizar tanto código como sea posile, vamos a definir la estructura de nuestro programa.

Vale la pena mencionar que si bien es una estructura en la que en un inicio puede parecer que nos sobran muchas cosas, más adelante agradeceremos enormemente haberla utilizado, tanto si hacemos público el código fuente de la aplicación como si no.

Archivos:

ARCHITECTURE: fichero en el que vamos a definir la arquitectura de nuestro chat, es decir, de qué capas consta, qué comunicación hay entre ellas,…

INSTALL: es un fichero en el que indicaremos qué pasos hay que seguir para instalar nuestra aplicación de la forma más genérica posible en una serie de máquinas, además especificaremos también las dependencias necesarias para realizar la instalación.

README: el famoso archivo que no se lee nadie, aunque parezca mentira, resulta ser de más utilidad de la que en un principio podría parecer, esto es así porque es un fichero en el que se detallan todas las funcionalidades de una aplicación o proceso (en caso de no tener un archivo man a mano), además, en este fichero podemos indicar como hemos de proceder ante determinadas situaciones.

Archivos fuente: aunque en este ejemplo no vamos a crear una estructura jerarquizada, para proyectos medianamente grandes, en cualquier lenguaje, conviene crear una jerarquía mediante el uso de carpetas, separando los ficheros por funcionalidades.

Makefile: éste es un archivo que nos permitirá compilar y ejecutar todo lo que nos sea necesario simplemente ejecutando en consola el comando «make».

A continuación, os pongo una captura de la carpeta con los archivos que vamos a tratar a lo largo de este tutorial si es que se le puede llamar así:

  • La Carpeta chat, es la que tiene los ficheros correspondientes con la interfaz gráfica de la que ya hablamos en el artículo anterior.
  • Los archivos ARCHITECTURE, README, INSTALL y Makefile, ya los hemos comentado anteriormente en este mismo artículo.
  • El archivo Cert.pem  es un certificado, el certificado que utilizaremos para identificar a los miembros que intervienen en la comunicación.
  • chat.db es una base de datos con el log de los eventos que suceden en el servidor.
  • chat.jar es el ejecutable de la interfaz gráfica.
  • cli5.c es el fichero principal para el manejo del clinete.
  • createDB.c es el fichero principal y que se encarga de la creación de una base de datos compatible con el programa por primera vez.
  • database.c es un fichero que contiene los métodos para tratar con la base de datos.
  • flags.h es un fichero de cabecera que contiene los flags para la comunicación entre cliente y servidor.
  • serv5.c es el fichero principal para el manejo del servidor.
  • interfaz.c es el fichero principal para el manejo de la interfaz.
  • servFunctions.c y *.h son los ficheros con las funciones genéricas del servidor.
  • sms.h y socket.h son unos ficheros de cabecera que contienen las estructuras necesarias para la comunicación.
  • tools.c y .h, y type.c y .h contienen una serie de funciones genéricas.
  • trace.h contiene una serie de macros un tanto precarias para hacer un seguimiento de qué es lo que ocurre en el chat.
https://www.dipler.org/2010/06/%C2%BFcomo-funciona-un-chat/

Recuerda que si quieres echarle un vistazo al código completo del chat (tanto cliente como servidor), puedes dirigirte al primer artículo de la serie de artículos que tratan el tema del chat.