nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
इस क्लास के ऑब्जेक्ट, ऐसे आईपी प्रोटोकॉल एंडपॉइंट को दिखाते हैं जिन्हें तुरंत इंस्टॉल नहीं किया जा सकता.
खास जानकारी
इनहेरिटेंस
इनसे इनहेरिट किया जाता है: nl::Inet::EndPointBasisपहले से मालूम सब-क्लास:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
सार्वजनिक प्रकार |
|
---|---|
@8{
|
enum एंडपॉइंट की बेसिक डाइनैमिक स्टेट. |
@9{
|
enumSendMsg तरीके के लिए विकल्प फ़्लैग ट्रांसमिट करें. |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
टाइपडिफ़void(*
संदेश लेख रिसेप्शन इवेंट प्रबंधन फ़ंक्शन का प्रकार. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
टाइपडिफ़void(*
रिसेप्शन की गड़बड़ी इवेंट को मैनेज करने वाले फ़ंक्शन का टाइप. |
सार्वजनिक विशेषताएं |
|
---|---|
OnMessageReceived
|
एंडपॉइंट का मैसेज रिसेप्शन इवेंट मैनेज करने का फ़ंक्शन डेलिगेट.
|
OnReceiveError
|
एंडपॉइंट से मिली गड़बड़ी को मैनेज करने वाला फ़ंक्शन, जिसे दिया गया है.
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
एंडपॉइंट की बेसिक डाइनैमिक स्टेट.
|
सुरक्षित किए गए एट्रिब्यूट |
|
---|---|
mBoundIntfId
|
InterfaceId
|
सार्वजनिक फ़ंक्शन |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
किसी आईपी मल्टीकास्ट ग्रुप में शामिल हों.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
कोई आईपी मल्टीकास्ट ग्रुप छोड़ें.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
सेट करें कि आईपी मल्टीकास्ट ट्रैफ़िक को लूप में चलाना है या नहीं.
|
सुरक्षित फ़ंक्शन |
|
---|---|
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 IP लेयर सोर्स और डेस्टिनेशन अड्रेसिंग से जुड़ी जानकारी पाएं.
|
सार्वजनिक प्रकार
@8
@8
एंडपॉइंट की बेसिक डाइनैमिक स्टेट.
ऑब्जेक्ट को "रेडी" में शुरू किया जाता है करने के लिए, "बाउंड" पर जाएं स्थानीय इंटरफ़ेस पते से बाइंड करने के बाद आगे बढ़ें, फिर "सुनना" पर जाएं उस स्थिति में जब वे आईसीएमपी मैसेज पाने से जुड़े इवेंट मैनेज करने के लिए रजिस्टर करते रहें.
ध्यान दें: बाइनरी के साथ काम करने की पुरानी वजहों के लिए, kBasisState_Closed
राज्य की गिनती को kState_Ready
पर मैप किया जाता है. मौजूदा kState_Closed
, "अभी तक नहीं खोला गया" के अंतर को अलग से पहचानने के लिए मौजूद है और "पहले खोला गया था
अब बंद है" जो पहले kState_Ready
और kState_Closed
राज्यों में मौजूद थीं.
प्रॉपर्टी | |
---|---|
kState_Bound
|
एंडपॉइंट बाउंड है, लेकिन सुन नहीं रहा है. |
kState_Closed
|
एंडपॉइंट बंद हो गया और रिलीज़ के लिए तैयार है. |
kState_Listening
|
एंडपॉइंट को डेटाग्राम मिल रहे हैं. |
kState_Ready
|
एंडपॉइंट शुरू किया गया, लेकिन खुला नहीं है. |
@9
@9
SendMsg
तरीके के लिए विकल्प फ़्लैग ट्रांसमिट करें.
प्रॉपर्टी | |
---|---|
kSendFlag_RetainBuffer
|
मैसेज को सीधे तौर पर सूची में न भेजें. कॉपी सूची में जोड़ें. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
संदेश लेख रिसेप्शन इवेंट प्रबंधन फ़ंक्शन का प्रकार.
endPoint
पर मैसेज टेक्स्ट रिसेप्शन के इवेंट प्रोसेस करने के लिए, OnMessageReceived
प्रतिनिधि को इस तरह का फ़ंक्शन उपलब्ध कराएं, जहां msg
, senderAddr
पर ईमेल भेजने वाले व्यक्ति से मिला मैसेज है.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
रिसेप्शन की गड़बड़ी इवेंट को मैनेज करने वाले फ़ंक्शन का टाइप.
endPoint
पर रिसेप्शन की गड़बड़ी वाले इवेंट को प्रोसेस करने के लिए, OnReceiveError
प्रतिनिधि के सदस्य को इस तरह का फ़ंक्शन उपलब्ध कराएं. err
आर्ग्युमेंट, गड़बड़ी के टाइप के बारे में खास जानकारी देता है.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
सार्वजनिक विशेषताएं
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
एंडपॉइंट का मैसेज रिसेप्शन इवेंट मैनेज करने का फ़ंक्शन डेलिगेट.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
एंडपॉइंट से मिली गड़बड़ी को मैनेज करने वाला फ़ंक्शन, जिसे दिया गया है.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
एंडपॉइंट की बेसिक डाइनैमिक स्टेट.
ऑब्जेक्ट को "रेडी" में शुरू किया जाता है करने के लिए, "बाउंड" पर जाएं स्थानीय इंटरफ़ेस पते से बाइंड करने के बाद आगे बढ़ें, फिर "सुनना" पर जाएं उस स्थिति में जब वे आईसीएमपी मैसेज पाने से जुड़े इवेंट मैनेज करने के लिए रजिस्टर करते रहें.
ध्यान दें: बाइनरी के साथ काम करने की पुरानी वजहों के लिए, kBasisState_Closed
राज्य की गिनती को kState_Ready
पर मैप किया जाता है. मौजूदा kState_Closed
, "अभी तक नहीं खोला गया" के अंतर को अलग से पहचानने के लिए मौजूद है और "पहले खोला गया था
अब बंद है" जो पहले kState_Ready
और kState_Closed
राज्यों में मौजूद थीं.
सुरक्षित किए गए एट्रिब्यूट
mBoundIntfId
InterfaceId mBoundIntfId
सार्वजनिक फ़ंक्शन
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
किसी आईपी मल्टीकास्ट ग्रुप में शामिल हों.
बताए गए इंटरफ़ेस पर दिए गए मल्टीकास्ट ग्रुप के एंडपॉइंट से जुड़ें.
जानकारी | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
रिटर्न वैल्यू |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
कोई आईपी मल्टीकास्ट ग्रुप छोड़ें.
बताए गए इंटरफ़ेस पर दिए गए मल्टीकास्ट ग्रुप से एंडपॉइंट हटाएं.
जानकारी | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
रिटर्न वैल्यू |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
सेट करें कि आईपी मल्टीकास्ट ट्रैफ़िक को लूप में चलाना है या नहीं.
सेट करें कि आईपी मल्टीकास्ट ट्रैफ़िक को इस एंडपॉइंट पर वापस लूप किया जाए या नहीं.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
सुरक्षित फ़ंक्शन
बाइंड
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 )
Init
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 IP लेयर सोर्स और डेस्टिनेशन अड्रेसिंग से जुड़ी जानकारी पाएं.
LwIP का इस्तेमाल करते समय पैकेट के बारे में जानकारी 'छिपाई गई' होती है वह खाली जगह में भी होनी चाहिए. यह ज़रूरी है, क्योंकि सिस्टम लेयर इवेंट में सिर्फ़ दो आर्ग्युमेंट होते हैं. इस मामले में, उनका इस्तेमाल पॉइंटर को एंड पॉइंट तक और पॉइंटर को बफ़र में बताने के लिए किया जाता है.
जानकारी | |||
---|---|---|---|
पैरामीटर |
|
||
लौटाए जाने वाले प्रॉडक्ट |
सफलता के बारे में पते की जानकारी की ओर एक पॉइंटर; अगर पैकेट में पते की जानकारी के लिए ज़रूरी जगह नहीं है, तो उसे शून्य कर दिया जाएगा.
|
ज़्यादातर मामलों में, डेटा काम करने से पहले ही जानकारी सेव करने की यह ट्रिक इसलिए होती है, क्योंकि LwIP आईपी मैसेज के पहले बफ़र में वह स्पेस होता है जिसका इस्तेमाल ईथरनेट/आईपी/यूडीपी हेडर के लिए किया गया था. हालांकि, IPPacketInfo स्ट्रक्चर (40 बाइट) के मौजूदा साइज़ को देखते हुए, हो सकता है कि एक पैकेट बफ़र में पेलोड के साथ-साथ स्ट्रक्चर को स्टोर करने के लिए ज़रूरी जगह न हो. व्यावहारिक तौर पर, ऐसा सिर्फ़ बहुत बड़े IPv4 पैकेट के लिए होता है, जो ईथरनेट हेडर के बिना आते हैं.