nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

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

สรุป

Nest Inet Layer สรุปวิธีการในการโต้ตอบกับปลายทางการนำส่ง UDP (ซ็อกเก็ต SOCK_DGRAM ในระบบที่ได้รับ Linux และ BSD) หรือบล็อกการควบคุมโปรโตคอล UDP LwIP เนื่องจากมีการกำหนดค่าของระบบให้สอดคล้องกัน

การสืบทอด

รับค่าจาก: 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
Flag ตัวเลือกการส่งที่ไม่บังคับ
ผลลัพธ์
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
Flag ตัวเลือกการส่งที่ไม่บังคับ
ผลลัพธ์
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
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น