Skip to content

Repository files navigation

Taller UDP Connection - Universidad Icesi

Facultad de Ingeniería, Diseño y Ciencias Aplicadas


Profesor: Ing. Nicolás Javier Salazar Echeverry


Fecha de asignación: 8 de mayo de 2025

Fecha de entrega:    30 de mayo de 2025


Equipo de Trabajo

  • Daniel Esteban Arcos Cerón      [A00400760]

  • Hideki Tamura Hernández         [A00348618]


Descripción General del Proyecto

El objetivo de este proyecto fue desarrollar una comunicación entre peers utilizando UDP en Java, como parte del taller de la asignatura Computación en Internet I de la Universidad Icesi. Se implementaron varios Peers que, utilizando la clase UDPconnection, pueden enviar y recibir mensajes de texto entre sí. Además, se creó una interfaz gráfica con JavaFX para facilitar la interacción del usuario con el programa.

El proyecto se estructura de manera modular, donde la clase UDPconnection gestiona la lógica de comunicación de red, y la clase Chat es responsable de la interfaz gráfica.


Estructura del Proyecto

UDP-Connection-DH/
│
├── bin/                       # Directorio que contiene los archivos compilados ...........
├── src/                       # Contiene el código fuente del proyecto ....................
│   ├── ui/                    # Contiene las clases relacionadas con la interfaz de usuario
│   │   ├── Chat.java          # Interfaz gráfica principal (JavaFX) .......................
│   │   ├── PeerD.java         # Implementación para Peer D ................................
│   │   ├── PeerH.java         # Implementación para Peer H ................................
│   │   ├── PeerConfig.java    # Implementación para configurar puertos e IPs ..............
│   │
│   └── util/                    # Contiene la lógica de comunicación ......................
│       └── UDPconnection.java   # Clase para manejar la conexión UDP ......................
│
├── target/                # Directorio generado por Maven .................................
├── pom.xml                # Archivo de configuración de Maven .............................
└── README.md              # Este archivo!

Instrucciones Básicas de Ejecución

Archivo de configuración

En primer lugar, toda la configuración de puertos e IPs se encuentra centralizada en la clase PeerConfig. Esta clase define las direcciones IP y los puertos locales y remotos para cada peer, y debe ser actualizada para cambiar la configuración de comunicación.

package ui;

public final class PeerConfig {
    /*
    * Clase centralizada para configurar las direcciones  IP  y  puertos
    * de cada peer involucrado en la comunicación UDP. Aquí debe hacerse
    * la configuración para la comunicación: definir las IPs  y  puertos 
    * locales y remotos para cada nodo.
    */
    public static final String IP_PEER_D = "127.0.0.1";
    public static final int PORT_PEER_D = 5000;

    public static final String IP_PEER_H = "127.0.0.1";
    public static final int PORT_PEER_H = 5001;

    private PeerConfig() {}
}

Ejecución desde línea de comandos

Nota: Por ahora, la interfaz gráfica sólo es ejecutable mediante línea de comandos usando Maven.

  1. Para iniciar la interfaz gráfica principal (que por defecto se ejecuta como Peer D en puerto 5000):
mvn clean javafx:run

Si la configuración en PeerConfig.java fue correcta, al iniciarse la interfaz podrás enviar y recibir mensajes con el peer configurado hacia el otro peer (por defecto hacia Peer H en puerto 5001).


Para pruebas en solitario (multi-consola)

Para probar la comunicación local entre peers en tu misma máquina, abre dos consolas. En una de ellas, ejecuta el programa tal como se indica en la sección anterior, y en la otra consola, ejecuta el peer opuesto utilizando los comandos siguientes:

  • Si tu eres PeerD, ejecutar PeerH:
mvn exec:java -Dexec.mainClass="ui.PeerH"
  • Si tu eres PeerH, ejecutar PeerD:
mvn exec:java -Dexec.mainClass="ui.PeerD"

Importante: Si planeas ejecutar este programa en dos computadores diferentes, debes modificar la configuración en PeerConfig.java para que refleje las direcciones IP reales de cada máquina en la red. Específicamente:

  • Para cada peer, actualiza la constante IP_PEER_X con la dirección IP local o pública asignada a la máquina donde se ejecuta ese peer.

  • Asegúrate de que los puertos configurados (PORT_PEER_D, PORT_PEER_H, etc.) estén libres y accesibles en cada computador, y que no existan firewalls bloqueando el tráfico UDP en esos puertos.

  • La IP y puerto que un peer utiliza para enviar mensajes deben coincidir con la IP y puerto donde el peer receptor está escuchando, asegurando la comunicación correcta entre ambos.

  • Si ambos computadores están en la misma red local, puedes usar las IPs privadas asignadas por el router.

  • Esta configuración garantiza que los peers se encuentren en la red y puedan enviar y recibir mensajes correctamente usando UDP.


Recordatorio:

  • PeerD usa puerto local 5000 y envía a PeerH en puerto 5001.
  • PeerH usa puerto local 5001 y envía a PeerD en puerto 5000.
  • Ambas instancias deben ejecutarse simultáneamente para que la comunicación funcione correctamente.
  • Para pruebas locales, las IPs están configuradas en 127.0.0.1. Si se usan máquinas diferentes, cambiar a las IPs de red correspondientes.

About

Taller de conexión UDP

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages