nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

このクラスのオブジェクトは UDP トランスポート エンドポイントを表します。

概要

Nest Inet Layer は、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 スタックロックがすでに取得されている状態でこのメソッドを呼び出すことはできません。

BindInterface

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 スタックロックで、このメソッドを呼び出すことはできません。

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

このエンドポイントにバインドされたインターフェースを取得します。

詳細
戻り値
InterfaceId: バインドされたインターフェース ID。

GetBoundPort

uint16_t GetBoundPort(
  void
)

読み上げる

INET_ERROR Listen(
  void
)

UDP メッセージを受信するようにエンドポイントを準備します。

State がすでに kState_Listening の場合、オペレーションは実行されません。それ以外の場合は、mStatekState_Listening に設定され、プラットフォームのセマンティクスに従って、UDP メッセージを受信する準備が整います。

詳細
戻り値
INET_NO_ERROR
成功: エンドポイントがメッセージを受信する準備が整いました。
INET_ERROR_INCORRECT_STATE
リッスンします。

LwIP では、すでに取得済みの LwIP スタックロックでこのメソッドを呼び出してはならない

SendMsg

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
別のシステムまたはプラットフォームのエラーです

SendTo

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

SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags) の同義語。

SendTo

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
別のシステムまたはプラットフォームのエラーです