OpenThread cung cấp các lệnh UDP để sử dụng với mạng Thread nhằm kiểm thử giao tiếp ngang hàng giữa các cổng UDP. cli udp
cung cấp một ổ cắm mẫu mà tất cả các lệnh udp
đều tương tác.
Các ví dụ sau minh hoạ cách bạn có thể mở và liên kết ổ cắm, cách kết nối ổ cắm cũng như cách gửi thông báo bằng cổng UDP.
Lệnh UDP
Để xem danh sách các lệnh udp
, hãy nhập help
:
udp help
bind
close
connect
linksecurity
open
send
Done
Lệnh open
Dùng lệnh udp open
để mở ổ cắm để bắt đầu giao tiếp UDP.
Sau đó, bạn có thể liên kết ổ cắm với một địa chỉ IP và cổng cụ thể.
Lệnh bind
Sau khi open
ổ cắm, bạn có thể chạy lệnh udp bind
để chỉ định địa chỉ IPv6 và một cổng cho ổ cắm đang mở. Thao tác này sẽ liên kết ổ cắm để giao tiếp. Việc chỉ định địa chỉ và cổng IPv6 cũng được gọi là việc đặt tên cho ổ cắm. Nếu bạn không bind
trực tiếp ổ cắm, hãy kết nối ổ cắm (udp connect
) hoặc sử dụng ổ cắm trong lệnh udp send
sẽ liên kết ổ cắm với một cổng tạm thời.
Lệnh connect
Bạn có thể dùng lệnh udp connect
để kết nối ổ cắm mẫu với địa chỉ ổ cắm ngang hàng.
Sau đó, bạn có thể ra lệnh udp send
để gửi tin nhắn cho ứng dụng ngang hàng. Nếu ổ cắm chưa được liên kết, việc tạo lệnh udp connect
cũng sẽ liên kết với ổ cắm đó.
Lệnh send
Lệnh udp send
gửi thông báo bằng ổ cắm mẫu đến một đích đến có thể chỉ định địa chỉ IP và cổng UDP bằng các biến lệnh.
Nếu địa chỉ IP và cổng không được chỉ định trong lệnh udp send
, thông báo sẽ được gửi bằng ổ cắm mẫu đến đích đã chỉ định trong lệnh udp connect
.
Việc tạo lệnh udp send
sẽ liên kết ổ cắm với một cổng tạm thời nếu chưa liên kết ổ cắm đó.
Lệnh close
Bạn nên dùng lệnh udp close
để đóng ổ cắm khi không còn cần đến ổ cắm này nữa.
Lệnh linksecurity
Bạn có thể dùng lệnh udp linksecurity
để bật hoặc tắt tính năng bảo mật lớp đường liên kết dữ liệu cho thư.
Gửi tin nhắn giữa hai nút
Trên Nút 1, hãy mở cổng UDP.
udp open
DoneTrên Nút 1, hãy liên kết ổ cắm.
udp bind :: 1234
DoneViệc sử dụng
::
biểu thị rằngbind
nên sử dụng địa chỉ IPv6 chưa chỉ định, do đó, ngăn xếp UDP/IPv6 chỉ định địa chỉ IPv6 liên kết. Để biết các tuỳ chọn đầy đủ vớiudp bind
, chẳng hạn như liên kết với giao diện mạng, hãy tham khảo liên kết udp.
1 Trên Nút 2, mở ổ cắm UDP.
udp open
Done
Trên Nút 2, gửi một thông báo đơn giản đến Nút 1.
udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
DoneLệnh này giả định rằng Nút 2 đã phát hiện ra địa chỉ của Nút 1. Ngoài ra, trong ví dụ này, quản trị viên của Nút 2 đã chọn không liên kết ổ cắm. Điều này là do quản trị viên của Nút 2 muốn gửi thông báo đến Nút 1 mà không cần quan tâm đến địa chỉ IP và cổng nào của Nút 2 được dùng làm nguồn của Nút 2. ổ cắm sẽ chọn một địa chỉ IP và chuyển ngẫu nhiên trong trường hợp này.
Để biết các tuỳ chọn đầy đủ với
udp send
, hãy tham khảo udp gửi.Nút 1 xác nhận đã nhận được thông báo từ Nút 2:
5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
Kết nối ổ cắm với địa chỉ cổng ngang hàng, sau đó gửi thông báo giữa hai nút
Ví dụ này tương tự như ví dụ trước, nhưng minh hoạ một số tính linh hoạt khi sử dụng cổng UDP. Với phương thức này, trước tiên bạn kết nối ổ cắm với địa chỉ ổ cắm ngang hàng, sau đó bạn không cần chỉ định địa chỉ IP ngang hàng và cổng mỗi lần thực hiện udp send
.
Trên Nút 1, hãy mở cổng UDP.
udp open
DoneTrên Nút 1, hãy liên kết ổ cắm.
udp bind :: 1234
DoneTrên Nút 2, hãy mở cổng UDP.
udp open
DoneTrên Nút 2, sử dụng lệnh
udp connect
để mở giao tiếp đến Nút 1.udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
DoneĐể biết các tuỳ chọn đầy đủ với
udp connect
, hãy tham khảo bài viết udp connectTrên Nút 2, hãy sử dụng lệnh
udp send
để gửi thông báo đến Nút 1, nhưng không chỉ địnhip
vàport
trong cú pháp lệnhudp send
.udp send hello
DoneKhi không chỉ định
ip
vàport
, lệnhudp send
sẽ sử dụngip
vàport
đã được chỉ định trong lệnhudp connect
.