OpenThread propose des commandes UDP utilisables avec un réseau Thread pour tester la communication peer-to-peer entre les sockets UDP. cli udp
fournit un exemple de socket avec lequel toutes les commandes udp
interagissent.
Les exemples suivants montrent comment ouvrir et lier des sockets, comment les connecter et comment envoyer des messages à l'aide de sockets UDP.
Commandes UDP
Pour obtenir la liste des commandes udp
, saisissez help
:
udp help
bind
close
connect
linksecurity
open
send
Done
Commande open
Utilisez la commande udp open
pour ouvrir le socket et commencer la communication UDP.
Vous avez ensuite la possibilité de lier le socket à une adresse IP et à un port spécifiques.
Commande bind
Après avoir open
le socket, vous pouvez exécuter une commande udp bind
pour attribuer une adresse IPv6 et un port au socket ouvert. Cela lie le socket pour la communication. L'attribution de l'adresse et du port IPv6 est également appelée nom du socket. Si vous n'exécutez pas directement la commande bind
sur le socket, le fait de le connecter (udp connect
) ou de l'utiliser dans une commande udp send
lie le socket à un port éphémère.
Commande connect
Une commande udp connect
peut être utilisée pour connecter l'exemple de socket à une adresse de socket pair.
Vous pouvez ensuite exécuter une commande udp send
pour envoyer un message au pair. Si le socket n'est pas déjà lié, l'exécution de la commande udp connect
le lie également.
Commande send
Une commande udp send
envoie un message à l'aide de l'exemple de socket à une destination dont l'adresse IP et le port UDP peuvent être spécifiés avec les variables de commande.
Si l'adresse IP et le port ne sont pas spécifiés dans la commande udp send
, le message est envoyé à l'aide de l'exemple de socket vers la destination spécifiée dans la commande udp connect
.
L'exécution de la commande udp send
lie le socket à un port éphémère s'il n'a pas déjà été lié.
Commande close
Il est recommandé d'utiliser la commande udp close
pour fermer le socket lorsqu'il n'est plus nécessaire.
Commande linksecurity
La commande udp linksecurity
permet d'activer ou de désactiver la sécurité de la couche de liaison de données pour les messages.
Envoyer un message entre deux nœuds
Sur le nœud 1, ouvrez le socket UDP.
udp open
DoneSur le nœud 1, liez le socket.
udp bind :: 1234
DoneL'utilisation de
::
indique quebind
doit utiliser l'adresse IPv6 non spécifiée, ce qui permet à la pile UDP/IPv6 d'attribuer l'adresse IPv6 de liaison. Pour obtenir des options complètes avecudp bind
, telles que la liaison à une interface réseau, reportez-vous à la section udp Lia.
1 Sur le nœud 2, ouvrez le socket UDP.
udp open
Done
Sur le nœud 2, envoyez un message simple au nœud 1.
udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
DoneCette commande suppose que le nœud 2 a déjà découvert l'adresse du nœud 1. De plus, dans cet exemple, l'administrateur du nœud 2 a choisi de ne pas lier le socket. En effet, l'administrateur du nœud 2 souhaite envoyer un message au nœud 1 sans se soucier des adresses IP et des ports utilisés comme source du nœud 2. Dans ce scénario, le socket choisit une adresse IP et un port de manière aléatoire.
Pour obtenir des options complètes avec
udp send
, consultez la section udp send.Le nœud 1 confirme la réception du message du nœud 2:
5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
Connectez le socket à l'adresse du socket pair, puis envoyez un message entre deux nœuds
Cet exemple est semblable au précédent, mais il démontre une partie de la flexibilité dont vous disposez pour utiliser les sockets UDP. Avec cette méthode, vous devez d'abord connecter le socket à l'adresse du socket pair. Vous n'avez ensuite pas besoin de spécifier l'adresse IP et le port du pair chaque fois que vous effectuez une opération udp send
.
Sur le nœud 1, ouvrez le socket UDP.
udp open
DoneSur le nœud 1, liez le socket.
udp bind :: 1234
DoneSur le nœud 2, ouvrez le socket UDP.
udp open
DoneSur le nœud 2, utilisez la commande
udp connect
pour ouvrir la communication avec le nœud 1.udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
DonePour obtenir des options complètes avec
udp connect
, consultez la page udp connect.Sur le nœud 2, utilisez la commande
udp send
pour envoyer un message au nœud 1, mais ne spécifiez pasip
niport
dans la syntaxe de la commandeudp send
.udp send hello
DoneSi vous ne spécifiez pas
ip
niport
, la commandeudp send
utilise les valeursip
etport
spécifiées dans la commandeudp connect
.