Confira o código-fonte no GitHub
O OpenThread oferece comandos UDP para uso com uma rede Thread para testar a comunicação ponto a ponto
entre soquetes UDP. O cli udp
fornece um soquete de exemplo com
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.
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 ao soquete aberto. Isso vincula o soquete para comunicação. A atribuição do endereço e da porta IPv6 também é chamada de nomeação do soquete. Se você não usar bind
diretamente no soquete, conecte-o (udp connect
) ou use-o em um comando udp send
para vincular 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ê poderá emitir um comando udp send
para enviar uma mensagem ao peering. Se o soquete ainda não estiver vinculado, a emissão do comando udp connect
também o vinculará.
Comando send
Um comando udp send
envia uma mensagem usando o soquete de exemplo para um destino
cujo endereço IP e porta UDP podem ser especificados com as variáveis de comando.
Se o endereço IP e a porta não forem especificados no
comando 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
se ele ainda não tiver sido vinculado.
Comando close
É recomendável usar o comando udp close
para fechar o soquete quando
ele não for mais necessário.
Comando linksecurity
O comando udp linksecurity
pode ser usado para ativar ou desativar a segurança da camada de link de dados para 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 ver as opções completas deudp bind
, como a vinculação a uma interface de rede, consulte vinculação 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. Neste cenário, o soquete escolhe um endereço IP e uma porta de forma aleatória.
Para 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
Conecte o soquete ao endereço do soquete de peering e envie uma mensagem entre dois nós
Este exemplo é semelhante ao anterior, mas demonstra um pouco da flexibilidade
que você tem em usar soquetes UDP. Com este método, primeiro você conecta o soquete ao
endereço de soquete de peering e não precisa especificar o endereço IP e a porta de peering
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 ver opções completas com
udp connect
, consulte UDP Connect.No Nó 2, use o comando
udp send
para enviar uma mensagem ao Nó 1, mas não especifiqueip
eport
na sintaxe do comandoudp send
.udp send hello
DoneAo não especificar
ip
eport
, o comandoudp send
usará osip
eport
que foram especificados no comandoudp connect
.