OpenThread udostępnia polecenia UDP, których można używać w sieci Thread do testowania komunikacji peer-to-peer między gniazdami UDP. cli udp
udostępnia jedno przykładowe gniazdo, z którym współdziałają wszystkie polecenia udp
.
Poniższe przykłady pokazują, jak otworzyć i wiązać gniazda, jak podłączyć gniazdo i jak wysyłać wiadomości za pomocą gniazd UDP.
Polecenia UDP
Aby wyświetlić listę poleceń udp
, wpisz help
:
udp help
bind
close
connect
linksecurity
open
send
Done
Polecenie open
Otwórz gniazdo za pomocą polecenia udp open
, aby rozpocząć komunikację UDP.
Następnie możesz powiązać gniazdo z określonym adresem IP i portem.
Polecenie bind
Po open
gniazda możesz uruchomić polecenie udp bind
, aby przypisać adres IPv6 i port do otwartego gniazda. Łączy to gniazdo do komunikacji. Przypisanie adresu i portu IPv6 jest też nazywane nadaniem nazwy gniazdu. Jeśli nie użyjesz gniazda bind
bezpośrednio, podłączenie go (udp connect
) lub użycie go w poleceniu udp send
spowoduje powiązanie gniazda z portem efemerycznym.
Polecenie connect
Polecenie udp connect
może posłużyć do podłączenia przykładowego gniazda do adresu gniazda równorzędnego.
Następnie możesz uruchomić polecenie udp send
, aby wysłać wiadomość do połączenia równorzędnego. Jeśli gniazdo nie jest jeszcze powiązane, uruchomienie polecenia udp connect
powoduje też powiązanie go.
Polecenie send
Polecenie udp send
wysyła wiadomość korzystającą z przykładowego gniazda do miejsca docelowego, którego adres IP i port UDP można określić za pomocą zmiennych polecenia.
Jeśli adres IP ani port nie są określone w poleceniu udp send
, wiadomość zostanie wysłana za pomocą przykładowego gniazda do miejsca docelowego określonego w poleceniu udp connect
.
Wykonanie polecenia udp send
wiąże gniazdo z portem tymczasowym, jeśli nie zostało ono jeszcze powiązane.
Polecenie close
Gdy gniazdo nie jest już potrzebne, zalecamy zamknięcie gniazda za pomocą polecenia udp close
.
Polecenie linksecurity
Polecenie udp linksecurity
może służyć do włączania i wyłączania zabezpieczeń warstwy połączenia danych dla wiadomości.
Wyślij wiadomość między 2 węzłami
W węźle 1 otwórz gniazdo UDP.
udp open
DonePołącz gniazdo w węźle 1.
udp bind :: 1234
DoneZastosowanie
::
oznacza, żebind
powinien używać nieokreślonego adresu IPv6, ponieważ to przez stos UDP/IPv6 przypisuje wiążący adres IPv6. Pełną listę opcjiudp bind
, takich jak wiązanie z interfejsem sieciowym, znajdziesz w dokumentacji udp bind.
1. W węźle 2 otwórz gniazdo UDP.
udp open
Done
W węźle 2 wyślij prostą wiadomość do węzła 1.
udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
DoneW tym poleceniu założono, że węzeł 2 wykrył już adres węzła 1. Poza tym w tym przykładzie administrator węzła 2 zdecydował się nie powiązać gniazda. Dzieje się tak, ponieważ administrator węzła 2 chce wysłać wiadomość do węzła 1, nie wiedząc, które z jego adresów IP i portów będą używane jako źródło węzła 2. W tym scenariuszu gniazdo wybiera adres IP i port jest losowo.
Pełną listę opcji
udp send
znajdziesz w artykule o wysyłaniu udp.Węzeł 1 potwierdza odbiór wiadomości z węzła 2:
5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
Połącz gniazdo z adresem gniazda peera, a następnie wyślij komunikat między 2 węzłami
Ten przykład jest podobny do poprzedniego, ale pokazuje pewne elastyczność, jaką umożliwia korzystanie z gniazd UDP. W ramach tej metody najpierw musisz połączyć gniazdo z adresem gniazda równorzędnego, nie musisz później określać adresu IP ani portu peera za każdym razem, gdy wykonujesz udp send
.
W węźle 1 otwórz gniazdo UDP.
udp open
DonePołącz gniazdo w węźle 1.
udp bind :: 1234
DoneW węźle 2 otwórz gniazdo UDP.
udp open
DoneW węźle 2 użyj polecenia
udp connect
, aby otworzyć komunikację z węzłem 1.udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
DonePełne opcje związane z
udp connect
znajdziesz na stronie udp connectW węźle 2 użyj polecenia
udp send
, aby wysłać wiadomość do węzła 1, ale nie podawajip
aniport
w składni poleceńudp send
.udp send hello
DoneJeśli nie podasz
ip
aniport
, polecenieudp send
użyje elementówip
iport
określonych w poleceniuudp connect
.