nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
ออบเจ็กต์ของคลาสนี้แสดงปลายทางโปรโตคอล IP ที่ไม่สามารถยืนยันได้
สรุป
การสืบทอด
รับค่าจาก nl::Inet::EndPointBasisDirect Known Subclasses:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
ประเภทสาธารณะ |
|
---|---|
@8{
|
enum สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ |
@9{
|
enum แฟล็กตัวเลือกการส่งสำหรับเมธอด SendMsg |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
ประเภทของฟังก์ชันการจัดการกิจกรรมการรับข้อความ |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
ประเภทของฟังก์ชันการจัดการเหตุการณ์ข้อผิดพลาดการรับ |
แอตทริบิวต์สาธารณะ |
|
---|---|
OnMessageReceived
|
มอบสิทธิ์การจัดการเหตุการณ์การรับข้อความของปลายทาง
|
OnReceiveError
|
มอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การรับข้อผิดพลาดของปลายทาง
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ
|
แอตทริบิวต์ที่ได้รับการปกป้อง |
|
---|---|
mBoundIntfId
|
InterfaceId
|
ฟังก์ชันสาธารณะ |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
เข้าร่วมกลุ่มมัลติแคสต์ตาม IP
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
ออกจากกลุ่มมัลติแคสต์ IP
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
ตั้งค่าว่าควรให้การรับส่งข้อมูลแบบมัลติแคสต์ตาม IP วนซ้ำหรือไม่
|
ฟังก์ชันที่มีการป้องกัน |
|
---|---|
Bind(IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId)
|
|
BindInterface(IPAddressType aAddressType, InterfaceId aInterfaceId)
|
|
GetSocket(IPAddressType aAddressType, int aType, int aProtocol)
|
|
HandleDataReceived(Weave::System::PacketBuffer *aBuffer)
|
void
|
HandlePendingIO(uint16_t aPort)
|
void
|
Init(InetLayer *aInetLayer)
|
void
|
PrepareIO(void)
|
|
SendMsg(const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags)
|
ฟังก์ชันแบบคงที่แบบสาธารณะ |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
ฟังก์ชันแบบคงที่ที่มีการป้องกัน |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
รับข้อมูลที่อยู่ต้นทางและปลายทางของเลเยอร์ LwIP
|
ประเภทสาธารณะ
@8
@8
สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ
ออบเจ็กต์เริ่มต้นในสถานะ "พร้อม" จากนั้นไปยังสถานะ "ที่เชื่อมโยง" หลังจากเชื่อมโยงกับที่อยู่อินเทอร์เฟซในเครื่อง จากนั้นไปยังสถานะ "การฟัง" เมื่อมีการดำเนินการอย่างต่อเนื่องที่ลงทะเบียนเพื่อจัดการเหตุการณ์สำหรับการรับข้อความ ICMP
หมายเหตุ:การแจงนับสถานะ kBasisState_Closed
จะแมปกับ kState_Ready
เพื่อเหตุผลด้านความเข้ากันได้แบบไบนารีที่ผ่านมา kState_Closed
ที่มีอยู่มีไว้เพื่อระบุความแตกต่างระหว่าง "ยังไม่ได้เปิด" และ "เพิ่งเปิดแล้วปิดแล้ว" ซึ่งก่อนหน้านี้มีในรัฐ kState_Ready
และ kState_Closed
พร็อพเพอร์ตี้ | |
---|---|
kState_Bound
|
เชื่อมโยงปลายทางแล้ว แต่ไม่ได้ฟัง |
kState_Closed
|
ผู้ใช้ปลายทางปิดแล้ว พร้อมเผยแพร่ |
kState_Listening
|
ปลายทางได้รับ Datagram |
kState_Ready
|
เริ่มต้นปลายทางแล้ว แต่ไม่เปิด |
@9
@9
แฟล็กตัวเลือกการส่งสำหรับเมธอด SendMsg
พร็อพเพอร์ตี้ | |
---|---|
kSendFlag_RetainBuffer
|
อย่าจัดคิวข้อความโดยตรงมากเกินไป จัดคิวสำเนา |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
ประเภทของฟังก์ชันการจัดการกิจกรรมการรับข้อความ
ระบุฟังก์ชันประเภทนี้ให้แก่สมาชิกที่มอบสิทธิ์ OnMessageReceived
เพื่อประมวลผลกิจกรรมการรับข้อความใน endPoint
โดย msg
เป็นข้อความที่ได้รับจากผู้ส่งที่ senderAddr
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
ประเภทของฟังก์ชันการจัดการเหตุการณ์ข้อผิดพลาดการรับ
ระบุฟังก์ชันประเภทนี้ให้แก่สมาชิกที่มอบสิทธิ์ OnReceiveError
เพื่อประมวลผลเหตุการณ์ข้อผิดพลาดในการรับใน endPoint
อาร์กิวเมนต์ err
มีรายละเอียดที่เฉพาะเจาะจงเกี่ยวกับประเภทของข้อผิดพลาด
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
แอตทริบิวต์สาธารณะ
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
มอบสิทธิ์การจัดการเหตุการณ์การรับข้อความของปลายทาง
OnReceiveError
OnReceiveErrorFunct OnReceiveError
มอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การรับข้อผิดพลาดของปลายทาง
mState
enum nl::Inet::IPEndPointBasis::@8 mState
สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ
ออบเจ็กต์เริ่มต้นในสถานะ "พร้อม" จากนั้นไปยังสถานะ "ที่เชื่อมโยง" หลังจากเชื่อมโยงกับที่อยู่อินเทอร์เฟซในเครื่อง จากนั้นไปยังสถานะ "การฟัง" เมื่อมีการดำเนินการอย่างต่อเนื่องที่ลงทะเบียนเพื่อจัดการเหตุการณ์สำหรับการรับข้อความ ICMP
หมายเหตุ:การแจงนับสถานะ kBasisState_Closed
จะแมปกับ kState_Ready
เพื่อเหตุผลด้านความเข้ากันได้แบบไบนารีที่ผ่านมา kState_Closed
ที่มีอยู่มีไว้เพื่อระบุความแตกต่างระหว่าง "ยังไม่ได้เปิด" และ "เพิ่งเปิดแล้วปิดแล้ว" ซึ่งก่อนหน้านี้มีในรัฐ kState_Ready
และ kState_Closed
แอตทริบิวต์ที่ได้รับการปกป้อง
mBoundIntfId
InterfaceId mBoundIntfId
ฟังก์ชันสาธารณะ
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
เข้าร่วมกลุ่มมัลติแคสต์ตาม IP
เข้าร่วมปลายทางกับกลุ่มมัลติแคสต์ที่ให้ไว้ในอินเทอร์เฟซที่ระบุ
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
ออกจากกลุ่มมัลติแคสต์ IP
นำปลายทางออกจากกลุ่มมัลติแคสต์ที่ให้ไว้ในอินเทอร์เฟซที่ระบุ
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
ตั้งค่าว่าควรให้การรับส่งข้อมูลแบบมัลติแคสต์ตาม IP วนซ้ำหรือไม่
กำหนดว่าควรให้การรับส่งข้อมูลแบบมัลติแคสต์ผ่าน IP กลับไปยังปลายทางนี้หรือไม่
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
แสดงผลค่า |
|
ฟังก์ชันที่มีการป้องกัน
เชื่อมโยง
INET_ERROR Bind( IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId )
BindInterface
INET_ERROR BindInterface( IPAddressType aAddressType, InterfaceId aInterfaceId )
GetSocket
INET_ERROR GetSocket( IPAddressType aAddressType, int aType, int aProtocol )
HandleDataReceived
void HandleDataReceived( Weave::System::PacketBuffer *aBuffer )
HandlePendingIO
void HandlePendingIO( uint16_t aPort )
เริ่มต้น
void Init( InetLayer *aInetLayer )
PrepareIO
SocketEvents PrepareIO( void )
SendMsg
INET_ERROR SendMsg( const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags )
ฟังก์ชันแบบคงที่แบบสาธารณะ
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
ฟังก์ชันแบบคงที่ที่มีการป้องกัน
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
รับข้อมูลที่อยู่ต้นทางและปลายทางของเลเยอร์ LwIP
เมื่อใช้ข้อมูล LwIP เกี่ยวกับแพ็กเก็ตจะถูก "ซ่อน" ในพื้นที่ที่สงวนไว้ก่อนเริ่มข้อมูลในบัฟเฟอร์แพ็กเก็ต ซึ่งเป็นสิ่งจำเป็นเนื่องจากเหตุการณ์เลเยอร์ระบบมีเพียง 2 อาร์กิวเมนต์ ซึ่งในกรณีนี้จะใช้เพื่อสื่อสารตัวชี้ไปยังจุดสิ้นสุดและตัวชี้ไปยังบัฟเฟอร์
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
ตัวชี้ไปยังข้อมูลที่อยู่เมื่อประสบความสำเร็จ มิเช่นนั้น จะเป็น NULL หากมีพื้นที่ในแพ็คเก็ตสำหรับข้อมูลที่อยู่ไม่เพียงพอ
|
ในกรณีส่วนใหญ่ เคล็ดลับการจัดเก็บข้อมูลก่อนที่ข้อมูลจะใช้ได้ เนื่องจากบัฟเฟอร์แรกในข้อความ IP ของ LwIP มีพื้นที่ที่ใช้สำหรับส่วนหัวอีเทอร์เน็ต/IP/UDP อย่างไรก็ตาม ด้วยขนาดของโครงสร้าง IPPacketInfo ในปัจจุบัน (40 ไบต์) เป็นไปได้ที่จะมีพื้นที่ไม่เพียงพอที่จะจัดเก็บโครงสร้างรวมถึงเพย์โหลดในบัฟเฟอร์แพ็กเก็ตเดียว ในทางปฏิบัติ กรณีนี้จะเกิดขึ้นเฉพาะกับแพ็กเก็ต IPv4 ที่มีขนาดใหญ่มากๆ ที่เข้ามาโดยไม่มีส่วนหัวอีเทอร์เน็ต