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