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
Nel nodo 1, apri il socket UDP.
udp open
DoneSul nodo 1, associa il socket.
udp bind :: 1234
DoneL'utilizzo di
::
indica chebind
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 conudp 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
Sul nodo 2, invia un semplice messaggio al nodo 1.
udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
DoneQuesto 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.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
.
Nel nodo 1, apri il socket UDP.
udp open
DoneSul nodo 1, associa il socket.
udp bind :: 1234
DoneNel nodo 2, apri il socket UDP.
udp open
DoneSul 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
DonePer le opzioni complete con
udp connect
, consulta udp ConnectSul nodo 2, utilizza il comando
udp send
per inviare un messaggio al nodo 1, ma non specificareip
eport
nella sintassi del comandoudp send
.udp send hello
DoneSe non specifichi
ip
eport
, il comandoudp send
utilizza i valoriip
eport
specificate nel comandoudp connect
.