nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
इस क्लास के ऑब्जेक्ट, ऐसे आईपी प्रोटोकॉल एंडपॉइंट दिखाते हैं जिन्हें तुरंत इंस्टॉल नहीं किया जा सकता.
खास जानकारी
इनहेरिटेंस
इनसे इनहेरिट की गई: nl::Inet::EndPointBasisसीधे तौर पर पता लगाई गई सबक्लास:
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)
|
किसी आईपी मल्टीकास्ट ग्रुप में शामिल हों.
|
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 आईपी लेयर के सोर्स और डेस्टिनेशन के पते की जानकारी पाएं.
|
सार्वजनिक टाइप
@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)
मैसेज टेक्स्ट रिसेप्शन इवेंट हैंडलिंग फ़ंक्शन का टाइप.
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
मौजूदा एंडपॉइंट की बुनियादी डाइनैमिक स्थिति.
ऑब्जेक्ट को "तैयार" स्थिति में शुरू किया जाता है. किसी लोकल इंटरफ़ेस पते से बाइंड करने के बाद, "बाउंड" स्थिति पर जाएं. इसके बाद, जब आईसीएमपी मैसेज पाने के लिए इवेंट को हैंडल करने के लिए रजिस्टर करना जारी रखें, तब "सुनना" स्थिति पर जाएं.
ध्यान दें: पुराने तरीके से बाइनरी के साथ काम करने की वजहों के लिए, 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 )
शुरू करें
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 की जानकारी इस्तेमाल की जाती है, तो वह पैकेट बफ़र में डेटा शुरू होने से पहले, रिज़र्व में रखी गई जगह में 'छिपाई गई' होती है. यह ज़रूरी है, क्योंकि सिस्टम लेयर इवेंट में सिर्फ़ दो आर्ग्युमेंट होते हैं. इस मामले में, पॉइंटर को एंड पॉइंट और बफ़र को पॉइंट देने के लिए इस्तेमाल किया जाता है.
जानकारी | |||
---|---|---|---|
पैरामीटर |
|
||
लौटाए गए सामान |
यह, सफलता के बारे में पते की जानकारी का पॉइंटर होता है. अगर पैकेट में पते की जानकारी के लिए ज़रूरी जगह नहीं है, तो इसे NULL कर दें.
|
ज़्यादातर मामलों में, डेटा सेव होने से पहले जानकारी सेव करने का यह तरीका काम करता है, क्योंकि किसी LwIP आईपी मैसेज के पहले बफ़र में वह स्पेस होता है जिसका इस्तेमाल ईथरनेट/आईपी/यूडीपी हेडर के लिए किया जाता था. हालांकि, IPPacketInfo स्ट्रक्चर के मौजूदा साइज़ (40 बाइट) को देखते हुए, हो सकता है कि सिंगल पैकेट बफ़र में पेलोड के साथ स्ट्रक्चर को स्टोर करने के लिए ज़रूरत के मुताबिक जगह न हो. ऐसा सिर्फ़ बहुत बड़े IPv4 पैकेट के लिए होना चाहिए, जो ईथरनेट हेडर के बिना आते हैं.