nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

ออบเจ็กต์ของคลาสนี้แสดงปลายทางการรับส่ง UDP

สรุป

Nest Inet Layer สรุปวิธีการโต้ตอบกับปลายทางการส่ง UDP (ซ็อกเก็ต SOCK_DGRAM ใน Linux และระบบ BSD) หรือบล็อกควบคุมโปรโตคอล 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
addrType เท่ากับ kIPAddressType_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 รหัสอินเทอร์เฟซที่เชื่อมโยง

GetBoundPort

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 แล้ว

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
ข้อผิดพลาดเกี่ยวกับระบบหรือแพลตฟอร์มอื่น