Test della funzionalità UDP con OT CLI

Visualizza il codice sorgente su GitHub

OpenThread offre comandi UDP da utilizzare con una rete Thread per testare il peer-to-peer la comunicazione tra i socket UDP. cli udp fornisce un socket di esempio con con cui interagiscono tutti i comandi udp.

Gli esempi che seguono mostrano come aprire e associare i socket, come connettere il socket e come inviare messaggi utilizzando i socket UDP.

Comandi UDP

Per un elenco di comandi udp, digita help:

udp help
bind
close
connect
linksecurity
open
send
Done

Comando open

Usa il comando udp open per aprire il socket e iniziare la comunicazione UDP. Puoi quindi associare il socket a un indirizzo IP e a una porta specifici.

Comando bind

Dopo aver open il socket, puoi eseguire un comando udp bind per assegnare un indirizzo IPv6 e una porta al socket aperto. Questa operazione vincola il socket per la comunicazione. L'assegnazione del parametro L'indirizzo e la porta IPv6 vengono anche denominati socket. Se non accedi direttamente bind la presa, collegandola (udp connect) o utilizzandola un comando udp send associa il socket a una porta temporanea.

Comando connect

È possibile utilizzare un comando udp connect per connettere il socket di esempio a un indirizzo socket peer. Puoi quindi inviare un comando udp send per inviare un messaggio al peer. Se lo zoccolo non è già associato, l'invio del comando udp connect vincola anche il socket.

Comando send

Un comando udp send invia un messaggio utilizzando il socket di esempio a una destinazione il cui indirizzo IP e la porta UDP possono essere specificati con le variabili di comando. Se l'indirizzo IP e la porta non sono specificati nel udp send, il messaggio viene inviato utilizzando il socket di esempio alla destinazione specificata nel comando udp connect. L'emissione del comando udp send associa il socket a una porta temporanea se il socket non è già stato associato.

Comando close

È consigliabile utilizzare il comando udp close per chiudere il socket quando il socket non è più necessario.

Comando linksecurity

Il comando udp linksecurity può essere utilizzato per attivare o disattivare la sicurezza del livello di collegamento dati per i messaggi.

Invia un messaggio tra due nodi

  1. Nel nodo 1, apri il socket UDP.

    udp open
    Done
    
  2. Sul nodo 1, associa il socket.

    udp bind :: 1234
    Done
    

    L'utilizzo di :: indica che bind deve utilizzare l'indirizzo IPv6 non specificato, e facendo in modo che lo stack UDP/IPv6 assegni l'indirizzo IPv6 di associazione. Per completamento opzioni con udp bind, come l'associazione a un'interfaccia di rete, fai riferimento a udp bind.

1 Sul nodo 2, apri il socket UDP.

udp open
   Done
   

  1. Sul nodo 2, invia un semplice messaggio al nodo 1.

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

    Questo comando presuppone che il nodo 2 abbia già rilevato l'indirizzo del nodo 1. Inoltre, in questo esempio, l'amministratore del nodo 2 ha scelto di non collegare il socket. Questo perché l'amministratore del nodo 2 vuole inviare un messaggio al nodo 1 senza preoccuparsi di quali indirizzi IP e porte vengono utilizzati come origine del nodo 2. In questo scenario, il socket sceglie un indirizzo IP e una porta in modo casuale.

    Per le opzioni complete con udp send, consulta udp send.

  2. Il nodo 1 conferma la ricezione del messaggio dal nodo 2:

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

Collega il socket all'indirizzo del socket peer, quindi invia un messaggio tra due nodi

Questo esempio è simile al precedente, ma dimostra una certa flessibilità che usi nell'uso dei socket UDP. Con questo metodo, prima colleghi il socket al non è necessario specificare l'indirizzo IP peer e la porta ogni volta che esegui un udp send.

  1. Nel nodo 1, apri il socket UDP.

    udp open
    Done
    
  2. Sul nodo 1, associa il socket.

    udp bind :: 1234
    Done
    
  3. Nel nodo 2, apri il socket UDP.

    udp open
    Done
    
  4. Sul nodo 2, utilizza il comando udp connect per aprire la comunicazione con il nodo 1.

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

    Per le opzioni complete con udp connect, consulta udp Connect

  5. Sul nodo 2, utilizza il comando udp send per inviare un messaggio al nodo 1, ma non specificare ip e port nella sintassi del comando udp send.

    udp send hello
    Done
    

    Se non specifichi ip e port, il comando udp send utilizza i valori ip e port specificate nel comando udp connect.