Prueba la funcionalidad de UDP con la CLI de OT

Ver código fuente en GitHub

OpenThread ofrece comandos UDP para usar con una red Thread para probar la conexión entre pares la comunicación entre sockets UDP. cli udp proporciona un socket de muestra con con el que interactúan todos los comandos de udp.

Los siguientes ejemplos demuestran cómo abrir y vincular sockets, cómo cómo conectar el socket y cómo enviar mensajes con los sockets UDP.

Comandos UDP

Para obtener una lista de comandos udp, escribe help:

udp help
bind
close
connect
linksecurity
open
send
Done

Comando open

Usa el comando udp open para abrir el socket y comenzar la comunicación UDP. Luego, tienes la opción de vincular el socket a una dirección IP y a un puerto específicos.

Comando bind

Después de open el socket, puedes ejecutar un comando udp bind para asignar una dirección IPv6. y un puerto al socket abierto. Esto vincula el socket para la comunicación. La asignación del La dirección IPv6 y el puerto también se denominan denominación del socket. Si no lo haces directamente bind el socket, conectando el enchufe (udp connect) o usándolo en un comando udp send vincula el socket a un puerto efímero.

Comando connect

Se puede usar un comando udp connect para conectar el socket de ejemplo a una dirección de socket de intercambio de tráfico. Luego, puedes emitir un comando udp send para enviar un mensaje al par. Si el zócalo aún no está vinculado, emitir el comando udp connect también vincula el socket.

Comando send

Un comando udp send envía un mensaje mediante un socket de ejemplo a un destino cuya dirección IP y puerto UDP se pueden especificar con las variables de comando. Si la dirección IP y el puerto no se especifican en el Comando udp send, el mensaje se envía con el socket de ejemplo al destino especificado en el comando udp connect. La emisión del comando udp send vincula el socket a un puerto efímero si el socket aún no se vinculó.

Comando close

Se recomienda usar el comando udp close para cerrar el socket cuando el socket ya no es necesario.

Comando linksecurity

El comando udp linksecurity se puede usar para habilitar o inhabilitar la seguridad de la capa de vínculo de datos para los mensajes.

Envía un mensaje entre dos nodos

  1. En el Nodo 1, abre el socket UDP.

    udp open
    Done
    
  2. En el Nodo 1, vincula el socket.

    udp bind :: 1234
    Done
    

    El uso de :: indica que bind debe usar la dirección IPv6 no especificada. lo que permite que la pila UDP/IPv6 asigne la dirección IPv6 de vinculación. Para completar opciones con udp bind, como la vinculación a una interfaz de red, consulta vinculación de udp.

1 En el Nodo 2, abre el socket UDP.

udp open
   Done
   

  1. En el Nodo 2, envía un mensaje simple al Nodo 1.

    udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
    Done
    

    Este comando supone que el Nodo 2 ya descubrió la dirección del Nodo 1. Además, en este ejemplo, el administrador del Nodo 2 ha optado por no enlazar el socket. Esto se debe a que el administrador del nodo 2 quiere enviar un mensaje al Nodo 1 sin tener en cuenta cuáles de sus direcciones IP y puertos se usan como la fuente del Nodo 2. En este caso, el socket elige una dirección IP y un puerto de forma aleatoria.

    Para conocer todas las opciones de udp send, consulta udp send

  2. El Nodo 1 confirma la recepción del mensaje del Nodo 2:

    5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
    

Conecta el socket a la dirección del socket de intercambio de tráfico y, luego, envía un mensaje entre dos nodos.

Este ejemplo es similar al anterior, pero demuestra algo de flexibilidad. que tienes en los sockets UDP. Con este método, primero conectas el socket al dirección del socket de intercambio de tráfico, no necesitas especificar la dirección IP ni el puerto cada vez que realizas una udp send.

  1. En el Nodo 1, abre el socket UDP.

    udp open
    Done
    
  2. En el Nodo 1, vincula el socket.

    udp bind :: 1234
    Done
    
  3. En el Nodo 2, abre el socket UDP.

    udp open
    Done
    
  4. En el Nodo 2, usa el comando udp connect para abrir la comunicación con el Nodo 1.

    udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
    Done
    

    Para conocer todas las opciones de udp connect, consulta udp connect

  5. En el Nodo 2, usa el comando udp send para enviar un mensaje al Nodo 1, pero no lo hagas. especifica ip y port en la sintaxis del comando udp send.

    udp send hello
    Done
    

    Si no se especifican ip y port, el comando udp send usa ip y port. especificadas en el comando udp connect.