OpenThread 提供 TCP 指令,可供 Thread 網路使用,測試點對點
以及 TCP 端點之間的通訊cli tcp
會提供一個範例 TCP
端點和一個所有 tcp
指令互動的 TCP 事件監聽器樣本。
指令總覽和隨後提供的範例提供初始化的相關資訊 TCP 端點和 TCP 事件監聽器範例 瞭解如何連線至對等互連 TCP 端點 以及如何傳送訊息給同事
TCP 指令
如需 tcp
指令的清單,請輸入 help
:
tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
init
指令
使用 tcp init
指令初始化 TCP 模組,以開始 TCP 通訊。
這樣一來,TCP 模組就能執行許多功能,例如監聽傳入
連線,而非使用 tcp
CLI 提供的範例 TCP 事件監聽器。
如要解除初始化範例 TCP 事件監聽器和範例 TCP 端點
發出 tcp deinit
指令。
bind
指令
如要在初始化 TCP 模組後繫結範例 TCP 端點,
執行 tcp bind
指令,將 IPv6 位址和通訊埠指派給 TCP 端點。
這會繫結端點以進行通訊。指派 IPv6 位址和通訊埠
也稱為「命名端點」
listen
指令
在您初始化 TCP 模組後,要使用範例 TCP 接聽程式,
執行 tcp listen
指令,並指定 IPv6 位址和監聽通訊埠。
如要停止範例 TCP 監聽器監聽傳入的 TCP 連線,
發出 tcp stoplistening
指令。
connect
指令
tcp connect
指令會將範例 TCP 端點連線至對等互連 TCP 端點位址。
send
指令
在兩個節點之間建立連線後,請發出 tcp send
指令。
撰寫訊息給同事
benchmark
指令
兩個節點之間建立 TCP 連線後,可選擇使用
benchmark
指令,在節點之間傳送大量資料進行測試
網路頻寬和效能傳輸的位元組數 (以毫秒為單位)
benchmark
結果中也會提供 TCP Goodput 的管道。
abort
指令
如要立即在無意間結束 TCP 連線,請執行 tcp abort
指令,將 TCP 端點轉換為關閉狀態。
sendend
指令
當一個節點將資料傳送至另一個節點後,第一個節點
發出 tcp sendend
指令來提醒第二個節點不再預期
資料。第二個節點也可以傳送 tcp sendend
至第一個節點。
每個節點收到 TCP: Disconnected
訊息後,TCP 連線
就會發生故障我們建議您
資料移轉完成後會發出這項指令。
在兩個節點之間傳送訊息
在節點 1 上初始化 TCP CLI 模組,然後監聽傳入連線 使用範例 TCP 事件監聽器
tcp init
tcp listen :: 30000
使用
::
表示listen
應使用未指定的 IPv6 位址。 讓 TCP/IPv6 堆疊指派 IPv6 位址。通訊埠是 30000。在 Node 2 上,初始化 TCP CLI 模組、連線至節點 1,然後傳送 簡單的訊息
tcp init
tcp connect fe80:0:0:0:a8df:580a:860:ffa4 30000
tcp send hello
驗證
根據上述步驟範例,可能的輸出結果如下:
- 節點 2 執行
tcp connect
指令後,Node 2 應接收 「TCP: Connection established
」訊息。 - 接著節點 1 應會收到訊息 (包含 IPv6 位址和通訊埠範例):
Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
TCP: Connection established
- 節點 2 執行
tcp send
指令後,Node 1 應接收 「TCP: Received 5 bytes: hello
」訊息