Soluciona este error:
In file included from /home/pablo/RIOT/sys/posix/pthread/include/pthread.h:42,
                 from /home/pablo/RIOT/build/pkg/esp32_sdk/components/newlib/platform_include/pthread.h:21,
                 from /home/pablo/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/xtensa-esp-elf/include/c++/14.2.0/xtensa-esp-elf/esp32s3/bits/gthr-default.h:35,
                 from /home/pablo/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/xtensa-esp-elf/include/c++/14.2.0/xtensa-esp-elf/esp32s3/bits/gthr.h:157,
                 from /home/pablo/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/xtensa-esp-elf/include/c++/14.2.0/ext/atomicity.h:35,
                 from /home/pablo/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/xtensa-esp-elf/include/c++/14.2.0/bits/shared_ptr_base.h:61,
                 from /home/pablo/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/xtensa-esp-elf/include/c++/14.2.0/bits/shared_ptr.h:53,
                 from /home/pablo/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/xtensa-esp-elf/include/c++/14.2.0/memory:80,
                 from /home/pablo/RIOT/build/pkg/esp32_sdk/components/nvs_flash/src/nvs.hpp:18,
                 from /home/pablo/RIOT/build/pkg/esp32_sdk/components/nvs_flash/src/nvs_api.cpp:15:
/home/pablo/RIOT/sys/posix/pthread/include/pthread_rwlock_attr.h:38:3: error: conflicting declaration 'typedef struct pthread_rwlockattr_t pthread_rwlockattr_t'
   38 | } pthread_rwlockattr_t;
      |   ^~~~~~~~~~~~~~~~~~~~
In file included from /home/pablo/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/xtensa-esp-elf/include/sys/types.h:221,
                 from /home/pablo/RIOT/build/pkg/esp32_sdk/components/newlib/platform_include/pthread.h:17:
/home/pablo/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/xtensa-esp-elf/include/sys/_pthreadtypes.h:230:3: note: previous declaration as 'typedef struct pthread_rwlockattr_t pthread_rwlockattr_t'
  230 | } pthread_rwlockattr_t;
      |   ^~~~~~~~~~~~~~~~~~~~
In file included from /home/pablo/RIOT/sys/posix/pthread/include/pthread.h:43:
/home/pablo/RIOT/sys/posix/pthread/include/pthread_rwlock.h:32:16: error: using typedef-name 'pthread_rwlock_t' after 'struct'
   32 | typedef struct pthread_rwlock_t {
      |                ^~~~~~~~~~~~~~~~
/home/pablo/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/xtensa-esp-elf/include/sys/_pthreadtypes.h:221:20: note: 'pthread_rwlock_t' has a previous declaration here
  221 | typedef __uint32_t pthread_rwlock_t;         /* POSIX RWLock Object */
      |                    ^~~~~~~~~~~~~~~~
/home/pablo/RIOT/sys/posix/pthread/include/pthread_rwlock.h:36:3: error: conflicting declaration 'typedef int pthread_rwlock_t'
   36 | } pthread_rwlock_t;
      |   ^~~~~~~~~~~~~~~~
/home/pablo/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/xtensa-esp-elf/include/sys/_pthreadtypes.h:221:20: note: previous declaration as 'typedef __uint32_t pthread_rwlock_t'
  221 | typedef __uint32_t pthread_rwlock_t;         /* POSIX RWLock Object */
      |                    ^~~~~~~~~~~~~~~~
make[4]: *** [../esp_idf.mk:61: /home/pablo/RIOT/examples/dht-servidor/bin/esp32s3-devkit/esp_idf_nvs_flash/components/nvs_flash/src/nvs_api.o] Error 1
make[4]: Leaving directory '/home/pablo/RIOT/cpu/esp32/esp-idf/nvs_flash'
make[3]: *** [/home/pablo/RIOT/Makefile.base:31: ALL--/home/pablo/RIOT/cpu/esp32/esp-idf/nvs_flash] Error 2
make[3]: Leaving directory '/home/pablo/RIOT/cpu/esp32/esp-idf'
make[2]: *** [/home/pablo/RIOT/Makefile.base:31: ALL--/home/pablo/RIOT/cpu/esp32/esp-idf] Error 2
make[2]: Leaving directory '/home/pablo/RIOT/cpu/esp32'
make[1]: *** [/home/pablo/RIOT/Makefile.base:31: ALL--/home/pablo/RIOT/cpu/esp32] Error 2
make[1]: Leaving directory '/home/pablo/RIOT/examples/dht-servidor'
make: *** [/home/pablo/RIOT/examples/dht-servidor/../../Makefile.include:746: application_hello-world.module] Error 2

En:
```
#include <stdio.h>
#include "net/sock/udp.h"
#include "xtimer.h"

#define SERVER_PORT 8090 // Puerto en el que se espera recibir los datos

int main(void) {
    sock_udp_ep_t local = SOCK_IPV6_EP_ANY;
    local.port = SERVER_PORT;

    sock_udp_t sock;
    if (sock_udp_create(&sock, &local, NULL, 0) < 0) {
        puts("Error al crear el socket UDP de recepción");
        return -1;
    }

    printf("Esperando datos en el puerto %d...\n", SERVER_PORT);

    while (1) {
        char buf[128];
        sock_udp_ep_t remote;

        // Recibir datos
        ssize_t res = sock_udp_recv(&sock, buf, sizeof(buf) - 1, SOCK_NO_TIMEOUT, &remote);
        if (res < 0) {
            puts("Error al recibir datos");
            continue;
        }

        buf[res] = '\0'; // Asegurarse de que el mensaje es una cadena de caracteres

        // Convertir la dirección IPv6 del remitente a una cadena legible
        char addr_str[IPV6_ADDR_MAX_STR_LEN];
        ipv6_addr_to_str(addr_str, (ipv6_addr_t *)&remote.addr.ipv6, sizeof(addr_str));

        // Imprimir los datos recibidos y la dirección IPv6 del remitente
        printf("Datos recibidos de [%s]: %s\n", addr_str, buf);
    }

    // Cerrar el socket (en este caso, no se llega aquí porque el bucle es infinito)
    sock_udp_close(&sock);
    return 0;
}
```
```
# Nombre de la aplicación
APPLICATION = hello-world

# Si no se especifica una placa, usar la predeterminada
BOARD ?= native

# Ruta absoluta al directorio base de RIOT
RIOTBASE ?= $(CURDIR)/../..

# Librerías necesarias
USEMODULE += gnrc_ipv6_default
USEMODULE += gnrc_udp
USEMODULE += xtimer
USEMODULE += auto_init_gnrc_netif
USEMODULE += netdev_default
USEMODULE += gnrc_netif
USEMODULE += sock_udp
USEMODULE += shell
USEMODULE += ipv6
USEMODULE += dht
USEMODULE += periph_gpio

# Ajustes adicionales
QUIET ?= 0

# Incluir el archivo Makefile base de RIOT
include $(RIOTBASE)/Makefile.include
```