UDP

這個模組內含控管 UDP 通訊的函式。

摘要

列舉

otNetifIdentifier{
  OT_NETIF_UNSPECIFIED = 0,
  OT_NETIF_THREAD,
  OT_NETIF_BACKBONE
}
列舉
定義 OpenThread 網路介面 ID。

Typedefs

otNetifIdentifier typedef
定義 OpenThread 網路介面 ID。
otUdpHandler)(void *aContext, const otMessage *aMessage, const otMessageInfo *aMessageInfo) typedef
bool(*
這個回呼可讓 OpenThread 為特定 UDP 訊息提供特定處理常式。
otUdpReceive)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo) typedef
void(*
這個回呼可讓 OpenThread 通知應用程式已收到 UDP 訊息。
otUdpReceiver typedef
struct otUdpReceiver
代表 UDP 接收器。
otUdpSocket typedef
struct otUdpSocket
代表 UDP 通訊端。

函式

otUdpAddReceiver(otInstance *aInstance, otUdpReceiver *aUdpReceiver)
新增 UDP 接收器。
otUdpBind(otInstance *aInstance, otUdpSocket *aSocket, const otSockAddr *aSockName, otNetifIdentifier aNetif)
繫結 UDP/IPv6 通訊端。
otUdpClose(otInstance *aInstance, otUdpSocket *aSocket)
關閉 UDP/IPv6 通訊端。
otUdpConnect(otInstance *aInstance, otUdpSocket *aSocket, const otSockAddr *aSockName)
連線 UDP/IPv6 通訊端。
otUdpGetSockets(otInstance *aInstance)
取得 UDP 通訊端的連結清單標頭。
otUdpIsOpen(otInstance *aInstance, const otUdpSocket *aSocket)
bool
檢查 UDP 通訊端是否開啟。
otUdpNewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
分配新的訊息緩衝區以傳送 UDP 訊息。
otUdpOpen(otInstance *aInstance, otUdpSocket *aSocket, otUdpReceive aCallback, void *aContext)
開啟 UDP/IPv6 通訊端。
otUdpRemoveReceiver(otInstance *aInstance, otUdpReceiver *aUdpReceiver)
移除 UDP 接收器。
otUdpSend(otInstance *aInstance, otUdpSocket *aSocket, otMessage *aMessage, const otMessageInfo *aMessageInfo)
傳送 UDP/IPv6 訊息。
otUdpSendDatagram(otInstance *aInstance, otMessage *aMessage, otMessageInfo *aMessageInfo)
在沒有通訊端的情況下傳送 UDP 訊息。

結構

otUdpReceiver

代表 UDP 接收器。

otUdpSocket

代表 UDP 通訊端。

列舉

otNetifIdentifier

 otNetifIdentifier

定義 OpenThread 網路介面 ID。

屬性
OT_NETIF_BACKBONE

Backbone 介面。

OT_NETIF_THREAD

Thread 介面。

OT_NETIF_UNSPECIFIED

未指定的網路介面。

Typedefs

otNetifIdentifier

enum otNetifIdentifier otNetifIdentifier

定義 OpenThread 網路介面 ID。

otUdpHandler

bool(* otUdpHandler)(void *aContext, const otMessage *aMessage, const otMessageInfo *aMessageInfo)

這個回呼可讓 OpenThread 為特定 UDP 訊息提供特定處理常式。

詳細說明
傳回值
true
訊息會由這個接收器處理,不應進一步處理。
false
這個接收端不會處理這則訊息。

otUdpReceive

void(* otUdpReceive)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo)

這個回呼可讓 OpenThread 通知應用程式已收到 UDP 訊息。

otUdpReceiver

struct otUdpReceiver otUdpReceiver

代表 UDP 接收器。

otUdpSocket

struct otUdpSocket otUdpSocket

代表 UDP 通訊端。

函式

otUdpAddReceiver

otError otUdpAddReceiver(
  otInstance *aInstance,
  otUdpReceiver *aUdpReceiver
)

新增 UDP 接收器。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aUdpReceiver
UDP 接收器的指標。
傳回值
OT_ERROR_NONE
已成功新增接收器。
OT_ERROR_ALREADY
已新增 UDP 接收器。

otUdpBind

otError otUdpBind(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  const otSockAddr *aSockName,
  otNetifIdentifier aNetif
)

繫結 UDP/IPv6 通訊端。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aSocket
指向 UDP 通訊端結構的指標。
[in] aSockName
指向 IPv6 通訊端位址結構的指標。
[in] aNetif
要繫結的網路介面。
傳回值
OT_ERROR_NONE
繫結作業成功。
OT_ERROR_FAILED
無法繫結 UDP 通訊端。

otUdpClose

otError otUdpClose(
  otInstance *aInstance,
  otUdpSocket *aSocket
)

關閉 UDP/IPv6 通訊端。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aSocket
指向 UDP 通訊端結構的指標。
傳回值
OT_ERROR_NONE
已成功關閉通訊端。
OT_ERROR_FAILED
無法關閉 UDP 通訊端。

otUdpConnect

otError otUdpConnect(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  const otSockAddr *aSockName
)

連線 UDP/IPv6 通訊端。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aSocket
指向 UDP 通訊端結構的指標。
[in] aSockName
指向 IPv6 通訊端位址結構的指標。
傳回值
OT_ERROR_NONE
連線作業成功。
OT_ERROR_FAILED
無法連線至 UDP 通訊端。

otUdpGetSockets

otUdpSocket * otUdpGetSockets(
  otInstance *aInstance
)

取得 UDP 通訊端的連結清單標頭。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
指向 UDP 通訊端連結清單標頭的指標。

otUdpIsOpen

bool otUdpIsOpen(
  otInstance *aInstance,
  const otUdpSocket *aSocket
)

檢查 UDP 通訊端是否開啟。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aSocket
指向 UDP 通訊端結構的指標。
傳回
UDP 通訊端是否開啟。

otUdpNewMessage

otMessage * otUdpNewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

分配新的訊息緩衝區以傳送 UDP 訊息。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aSettings
指向訊息設定的指標,或是指向使用預設設定的 NULL 指標。
傳回
如果沒有可用訊息緩衝區或參數無效,這個指標指向訊息緩衝區或 NULL。
另請參閱:
otMessageFree

otUdpOpen

otError otUdpOpen(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  otUdpReceive aCallback,
  void *aContext
)

開啟 UDP/IPv6 通訊端。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aSocket
指向 UDP 通訊端結構的指標。
[in] aCallback
應用程式回呼函式的指標。
[in] aContext
指向應用程式特定背景資訊的指標。
傳回值
OT_ERROR_NONE
已成功開啟通訊端。
OT_ERROR_FAILED
無法開啟通訊端。

otUdpRemoveReceiver

otError otUdpRemoveReceiver(
  otInstance *aInstance,
  otUdpReceiver *aUdpReceiver
)

移除 UDP 接收器。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aUdpReceiver
UDP 接收器的指標。
傳回值
OT_ERROR_NONE
已成功移除接收端。
OT_ERROR_NOT_FOUND
未新增 UDP 接收器。

otUdpSend

otError otUdpSend(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo
)

傳送 UDP/IPv6 訊息。

如果傳回值為 OT_ERROR_NONE,OpenThread 會取得 aMessage 的擁有權,呼叫端則不應再參照 aMessage。如果傳回的值不是 OT_ERROR_NONE,呼叫端會保留 aMessage 的擁有權,如果不再需要訊息緩衝區,就會釋放 aMessage

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aSocket
指向 UDP 通訊端結構的指標。
[in] aMessage
指向訊息緩衝區的指標。
[in] aMessageInfo
指向訊息資訊結構的指標。

詳細說明
傳回值
OT_ERROR_NONE
已成功排定郵件傳送時間。
OT_ERROR_INVALID_ARGS
指定的引數無效。
OT_ERROR_NO_BUFS
可用緩衝區不足,無法新增 UDP 和 IPv6 標頭。

otUdpSendDatagram

otError otUdpSendDatagram(
  otInstance *aInstance,
  otMessage *aMessage,
  otMessageInfo *aMessageInfo
)

在沒有通訊端的情況下傳送 UDP 訊息。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aMessage
指向不含 UDP 標頭的郵件的指標。
[in] aMessageInfo
指向與 aMessage 相關聯的訊息資訊的指標。
傳回值
OT_ERROR_NONE
成功將訊息排入輸出介面。
OT_ERROR_NO_BUFS
可用緩衝區不足,無法新增 IPv6 標頭。
OT_ERROR_INVALID_ARGS
指定的引數無效。

資源

OpenThread API 參考資料主題源自原始碼,請前往 GitHub 取得。如要瞭解詳情或對說明文件做出貢獻,請參閱資源