透過集合功能整理內容 你可以依據偏好儲存及分類內容。

NL::內網:: UDP端點

#include <src/inet/UDPEndPoint.h>

此類的對象表示 UDP 傳輸端點。

概括

Nest Inet 層封裝了與 UDP 傳輸端點(Linux 和 BSD 派生系統上的 SOCK_DGRAM 套接字)或 LwIP UDP 協議控制塊交互的方法,因為系統已進行相應配置。

遺產

:從繼承NL :: Inet電子:: IPEndPointBasis

公共職能

Bind (IPAddressType addrType, IPAddress addr, uint16_t port, InterfaceId intfId)
將端點綁定到接口 IP 地址。
BindInterface (IPAddressType addrType, InterfaceId intf)
將端點綁定到網絡接口。
Close (void)
void
關閉端點。
Free (void)
void
關閉端點並回收其內存。
GetBoundInterface (void)
InterfaceId
獲取此端點上的綁定接口。
GetBoundPort (void)
uint16_t
Listen (void)
準備端點以接收 UDP 消息。
SendMsg (const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
向指定目的地發送 UDP 消息。
SendTo ( IPAddress addr, uint16_t port, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
一種用於同義詞SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags)
SendTo ( IPAddress addr, uint16_t port, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
向指定的目標地址發送 UDP 消息。

公共職能

綁定

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  uint16_t port,
  InterfaceId intfId
)

將端點綁定到接口 IP 地址。

將端點綁定到指定的網絡接口 IP 地址。

細節
參數
[in] addrType
IP地址的協議版本
[in] addr
IP地址(必須是接口地址)
[in] port
UDP 端口
[in] intfId
一個可選的網絡接口指示器
返回值
INET_NO_ERROR
成功:端點綁定到地址
INET_ERROR_INCORRECT_STATE
端點之前已綁定
INET_NO_MEMORY
端點內存不足
INET_ERROR_UNKNOWN_INTERFACE
在某些平台上,不存在可選指定的接口。
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType不匹配IPVer
INET_ERROR_WRONG_ADDRESS_TYPE
addrTypekIPAddressType_Any ,或類型addr不等於addrType
other
另一個系統或平台錯誤

在 LwIP 上,不得在已獲取 LwIP 堆棧鎖的情況下調用此方法。

綁定接口

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

將端點綁定到網絡接口。

將端點綁定到指定的網絡接口 IP 地址。

細節
參數
[in] addrType
IP 地址的協議版本。
[in] intf
網絡接口指示燈。
返回值
INET_NO_ERROR
成功:端點綁定到地址
INET_NO_MEMORY
端點內存不足
INET_ERROR_NOT_IMPLEMENTED
系統實施未完成。
INET_ERROR_UNKNOWN_INTERFACE
在某些平台上,該界面不存在。
other
另一個系統或平台錯誤

在 LwIP 上,不得在已獲取 LwIP 堆棧鎖的情況下調用此方法。

關閉

void Close(
  void
)

關閉端點。

如果mState != kState_Closed ,然後關閉端點,從端點集合資格通信事件的刪除它。

在 LwIP 系統上,不得在已獲取 LwIP 堆棧鎖的情況下調用此方法。

自由

void Free(
  void
)

關閉端點並回收其內存。

調用Close方法,然後調用InetLayerBasis::Release方法的對象返回到它的內存池。

在 LwIP 系統上,不得在已獲取 LwIP 堆棧鎖的情況下調用此方法。

獲取綁定接口

InterfaceId GetBoundInterface(
  void
)

獲取此端點上的綁定接口。

細節
退貨
InterfaceId 綁定的接口 ID。

獲取綁定端口

uint16_t GetBoundPort(
  void
)

INET_ERROR Listen(
  void
)

準備端點以接收 UDP 消息。

如果State已經kState_Listening ,然後不進行任何操作,否則mState設置為kState_Listening和端點準備接收UDP消息,根據平台的語義。

細節
返回值
INET_NO_ERROR
成功:端點準備好接收消息。
INET_ERROR_INCORRECT_STATE
端點已經在監聽。

在 LwIP 上,不得在已獲取 LwIP 堆棧鎖的情況下調用此方法

發送消息

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

向指定目的地發送 UDP 消息。

 Send the UDP message in \c msg to the destination address and port given in
 \c pktInfo.  If \c pktInfo contains an interface id, the message will be sent
 over the specified interface.  If \c pktInfo contains a source address, the
 given address will be used as the source of the UDP message.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

細節
參數
[in] pktInfo
UDP 消息的源和目標信息
[in] msg
包含 UDP 消息的數據包緩衝區
[in] sendFlags
可選的傳輸選項標誌
返回值
INET_NO_ERROR
成功: msg排隊等待發送。
INET_ERROR_NOT_SUPPORTED
系統不支持請求的操作。
INET_ERROR_WRONG_ADDRESS_TYPE
目的地址和綁定的接口地址沒有匹配的協議版本或地址類型。
INET_ERROR_MESSAGE_TOO_LONG
msg不包含整個UDP消息。
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
在某些平台上,只的截短部分msg已在等待發送。
other
另一個系統或平台錯誤

發給

INET_ERROR SendTo(
  IPAddress addr,
  uint16_t port,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

一種用於同義詞SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags)

發給

INET_ERROR SendTo(
  IPAddress addr,
  uint16_t port,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

向指定的目標地址發送 UDP 消息。

 If possible, then this method sends the UDP message \c msg to the
 destination \c addr (with \c intfId used as the scope
 identifier for IPv6 link-local destinations) and \c port with the
 transmit option flags encoded in \c sendFlags.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

細節
參數
[in] addr
目標 IP 地址
[in] port
目標UDP端口
[in] intfId
一個可選的網絡接口指示器
[in] msg
包含 UDP 消息的數據包緩衝區
[in] sendFlags
可選的傳輸選項標誌
返回值
INET_NO_ERROR
成功: msg排隊等待發送。
INET_ERROR_NOT_SUPPORTED
系統不支持請求的操作。
INET_ERROR_WRONG_ADDRESS_TYPE
目的地址和綁定的接口地址沒有匹配的協議版本或地址類型。
INET_ERROR_MESSAGE_TOO_LONG
msg不包含整個UDP消息。
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
在某些平台上,只的截短部分msg已在等待發送。
other
另一個系統或平台錯誤