Aplicación cliente-servidor implementada en C usando sockets TCP, que simula una versión simple del popular juego Wordle. Desarrollado para utilizarse en máquinas virtuales Ubuntu con VirtualBox.
Este proyecto consiste en un juego interactivo donde un cliente envía palabras al servidor intentando adivinar una palabra secreta de 5 letras seleccionada al azar. El servidor responde con un patrón que indica coincidencias:
G→ letra correcta en la posición correcta (green)Y→ letra correcta en posición incorrecta (yellow)-→ letra incorrecta (gray)
El cliente también muestra un abecedario de letras disponibles, que se va actualizando tras cada intento, marcando con . las letras descartadas.
- Sistema operativo: Ubuntu (recomendado en máquinas virtuales con VirtualBox)
- Compilador:
gcc - Comunicación TCP mediante sockets
Elegimos sockets TCP porque:
- Garantiza entrega ordenada y fiable de los mensajes entre cliente y servidor
- Es adecuado para aplicaciones interactivas como Wordle donde se espera una secuencia de ida y vuelta
- Nos permite mantener una conexión persistente durante el juego
Para que el cliente (desde el host) pueda comunicarse con el servidor (dentro de la VM Ubuntu), es necesario configurar el reenvío de puertos (port forwarding) en VirtualBox.
- Apagar la máquina virtual si está corriendo.
- En VirtualBox, abrir Configuración de la VM → Red → Adaptador 1.
- Asegurarse de que esté en Modo NAT.
- Hacer clic en "Avanzado" → "Reenvío de puertos".
- Agregar una regla con los siguientes valores de ejemplo:
- Nombre: WordleTCP
- IP anfitrión: 192.168.1.8
- Puerto anfitrión: 5647
- IP invitado: 10.0.2.15
- Puerto invitado: 7020
- Protocolo: TCP
📌 Importante asegurarse de que la IP invitado (
10.0.2.15) coincida con la IP real de tu VM. Puede verificarse con el comandoip adentro de la terminal de Ubuntu.
Desde la terminal, en cada máquina (cliente y servidor):
gcc wordle_server.c -o server
gcc wordle_client.c -o client./server 7020./client 192.168.1.8 5647