Repository navigation
Hit #6
🚀 Release: Incorporación de Registro de Contactos en la Comunicación TCP
📌 Descripción
En esta versión, se ha incorporado un nuevo tipo de nodo denominado Registro de Contactos (D), que actúa como un registro centralizado para gestionar la comunicación entre múltiples instancias del programa C.
El nodo D mantiene una lista de los nodos C en ejecución y proporciona la información de contacto de estos a cualquier nueva instancia de C que se registre. De este modo, las instancias de C pueden establecer comunicación entre ellas sin necesidad de conocer de antemano las direcciones IP de sus pares.
🔧 Funcionamiento
-
Nodo D (Registro de Contactos):
- Escucha en un puerto fijo.
- Almacena en memoria la información de los nodos C registrados (IP y puerto).
- Responde a los nodos C con la lista actualizada de nodos conectados.
-
Nodo C (Cliente TCP):
- Recibe por parámetros la IP y el puerto del nodo D.
- Escoge un puerto aleatorio para la escucha.
- Se comunica con D para registrarse y recibir la lista de nodos activos.
- Se conecta a cada nodo C registrado y les envía un saludo.
✅ Cambios en el Programa
📌 Registro de Contactos (RegistroContactos)
- Se ha creado una nueva clase que actúa como registro central de nodos.
- Usa un array en RAM para mantener la información de los nodos activos.
- Al recibir una solicitud de un nodo C, lo registra y responde con la lista de nodos conectados.
📌 Cliente (C)
- Ahora solo recibe la IP y el puerto del nodo D al iniciar.
- Genera un puerto de escucha aleatorio.
- Se registra en D y recibe la lista de nodos activos.
- Se conecta a cada nodo de la lista y envía un saludo.
- Permite la conexión y comunicación con múltiples nodos C.
▶️ Instrucciones de Uso
Para probar la funcionalidad, ejecutar el entorno con Docker Compose.
Ejemplo de ejecución:
docker-compose up --build