<ph type="x-smartling-placeholder"></ph> 在 GitHub 上查看源代码
OpenThread 提供与 Thread 网络搭配使用的 UDP 命令,用于测试点对点连接
UDP 套接字之间的通信。cli udp
提供了一个示例套接字,
所有 udp
命令都会交互。
以下示例展示了如何打开和绑定套接字、如何 以及如何使用 UDP 套接字发送消息。
UDP 命令
如需查看 udp
命令的列表,请输入 help
:
udp help
bind
close
connect
linksecurity
open
send
Done
open
命令
使用 udp open
命令打开套接字以开始 UDP 通信。
然后,您可以选择将套接字绑定到特定的 IP 地址和端口。
bind
命令
对套接字执行 open
操作后,您可以运行 udp bind
命令来分配 IPv6 地址
以及连接到开放套接字的端口这会绑定用于通信的套接字。将
IPv6 地址和端口也称为套接字命名。如果您没有直接
bind
表示套接字,连接套接字 (udp connect
) 或在
udp send
命令可将套接字绑定到临时端口。
connect
命令
udp connect
命令可用于将示例套接字连接到对等套接字地址。
然后,您可以发出 udp send
命令以向对等端发送消息。如果套接字
尚未绑定,则发出 udp connect
命令也会绑定套接字。
send
命令
udp send
命令使用示例套接字将消息发送到目的地
可以使用命令变量指定其 IP 地址和 UDP 端口。
如果未在
udp send
命令,则使用示例套接字发送消息
发送到在 udp connect
命令中指定的目的地。
发出 udp send
命令可将套接字绑定到临时端口
如果套接字尚未绑定。
close
命令
在以下情况下,建议您使用 udp close
命令关闭套接字
不再需要套接字。
linksecurity
命令
udp linksecurity
命令可用于为消息启用或停用数据链路层安全性。
在两个节点之间发送消息
在节点 1 上,打开 UDP 套接字。
udp open
Done在节点 1 上,绑定套接字。
udp bind :: 1234
Done使用
::
表示bind
应使用未指定的 IPv6 地址。 从而让 UDP/IPv6 堆栈分配绑定 IPv6 地址如需完整 带有udp bind
的选项,例如绑定到网络接口; 请参阅 udp 绑定。
1 在节点 2 上,打开 UDP 套接字。
udp open
Done
在节点 2 上,向节点 1 发送一条简单消息。
udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
Done此命令假定节点 2 已经发现节点 1 的地址。 此外,在此示例中,Node 2 的管理员已选择 绑定套接字。这是因为 Node 2 管理员想要 向节点 1 发送一条消息,而不关注节点 1 的 IP 地址和端口 用作节点 2 来源在这种情况下,套接字会随机选择 IP 地址和端口。
如需了解
udp send
的完整选项,请参阅 udp send。节点 1 确认收到来自节点 2 的消息:
5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
将套接字连接到对等套接字地址,然后在两个节点之间发送消息
此示例与前一个示例类似,
使用 UDP 套接字使用这种方法,您需要先将套接字连接到
对等套接字地址,则无需指定对等 IP 地址和端口
每次您执行 udp send
操作。
在节点 1 上,打开 UDP 套接字。
udp open
Done在节点 1 上,绑定套接字。
udp bind :: 1234
Done在节点 2 上,打开 UDP 套接字。
udp open
Done在节点 2 上,使用
udp connect
命令打开与节点 1 的通信。udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
Done如需了解
udp connect
的完整选项,请参阅 udp 连接在节点 2 上,使用
udp send
命令向节点 1 发送消息,但不 在udp send
命令语法中指定ip
和port
。udp send hello
Done如果未指定
ip
和port
,udp send
命令会使用ip
和port
udp connect
命令中指定的名称。