O OpenThread oferece comandos UDP para uso com uma rede Thread para teste ponto a ponto
e comunicação entre soquetes UDP. O cli udp
fornece um soquete de amostra com
com a qual todos os comandos udp
interagem.
Os exemplos a seguir demonstram como abrir e vincular soquetes, como conectar o soquete e como enviar mensagens usando soquetes UDP.
Comandos UDP
Para ver uma lista de comandos udp
, digite help
:
udp help
bind
close
connect
linksecurity
open
send
Done
Comando open
Use o comando udp open
para abrir o soquete e iniciar a comunicação UDP.
Em seguida, você terá a opção de vincular o soquete a uma porta e um endereço IP específicos.
Comando bind
Depois de open
o soquete, execute um comando udp bind
para atribuir um endereço IPv6
e uma porta para o soquete aberto. Isso vincula o soquete para comunicação. A atribuição do
O endereço IPv6 e a porta também são chamados de nomear o soquete. Se você não
bind
o soquete, conectando-o (udp connect
) ou usando-o
um comando udp send
vincula o soquete a uma porta temporária.
Comando connect
Um comando udp connect
pode ser usado para conectar o soquete de exemplo a um endereço de soquete de peering.
Em seguida, você pode emitir um comando udp send
para enviar uma mensagem ao peering. Se o soquete
ainda não estiver vinculado, emitir o comando udp connect
também vinculará o soquete.
Comando send
Um comando udp send
envia uma mensagem usando o soquete de exemplo para um destino
com endereço IP e porta UDP que podem ser especificados com as variáveis de comando.
Se o endereço IP e a porta não forem especificados no
udp send
, a mensagem será enviada usando o soquete de exemplo
para o destino especificado no comando udp connect
.
A emissão do comando udp send
vincula o soquete a uma porta temporária
caso o soquete ainda não tenha sido vinculado.
Comando close
É recomendável usar o comando udp close
para fechar o soquete quando
o soquete não é mais necessário.
Comando linksecurity
O comando udp linksecurity
pode ser usado para ativar ou desativar a segurança da camada de enlace de dados nas mensagens.
Enviar uma mensagem entre dois nós
No Nó 1, abra o soquete UDP.
udp open
DoneNo Nó 1, vincule o soquete.
udp bind :: 1234
DoneO uso de
::
indica quebind
precisa usar o endereço IPv6 não especificado. fazendo com que a pilha UDP/IPv6 atribua o endereço IPv6 de vinculação. Para concluir opções comudp bind
, como vinculação a uma interface de rede, Consulte Vinculação de udp.
1 No Nó 2, abra o soquete UDP.
udp open
Done
No Nó 2, envie uma mensagem simples para o Nó 1.
udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
DoneEsse comando pressupõe que o Nó 2 já descobriu o endereço do Nó 1. Além disso, neste exemplo, o administrador do Nó 2 optou por não vincular o soquete. Isso ocorre porque o administrador do nó 2 quer enviar uma mensagem para o Nó 1 sem se preocupar com quais endereços IP e portas são usados como a origem do nó 2. Nesse cenário, o soquete escolhe um endereço IP e uma porta aleatoriamente.
Para conferir as opções completas com
udp send
, consulte udp send.O Nó 1 confirma o recebimento da mensagem do Nó 2:
5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
Conectar o soquete ao endereço do soquete de mesmo nível e enviar uma mensagem entre dois nós
Este exemplo é semelhante ao anterior, mas demonstra parte da flexibilidade
no uso de soquetes UDP. Com esse método, você primeiro conecta o soquete ao
do peering, não será preciso especificar o endereço IP e a porta
sempre que fizer um udp send
.
No Nó 1, abra o soquete UDP.
udp open
DoneNo Nó 1, vincule o soquete.
udp bind :: 1234
DoneNo Nó 2, abra o soquete UDP.
udp open
DoneNo Nó 2, use o comando
udp connect
para abrir a comunicação com o Nó 1.udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
DonePara conferir as opções completas com
udp connect
, consulte Conexão UDPNo Nó 2, use o comando
udp send
para enviar uma mensagem para o Nó 1, mas não especifiqueip
eport
na sintaxe do comandoudp send
.udp send hello
DoneSe não especificar
ip
eport
, o comandoudp send
usará oip
e oport
. especificados no comandoudp connect
.