संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

nl::इंटरनेट::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

इस क्लास के ऑब्जेक्ट, ऐसे आईपी प्रोटोकॉल एंडपॉइंट के बारे में बताते हैं जिन्हें बदला नहीं जा सकता.

खास जानकारी

इनहेरिटेंस

यहां से इनहेरिट किया जाता है: nl::Inet::EndPointBasis
Direct Unknown Subclasses:
nl::Inet::RawEndPoint
nl::Inet::UPEndPoint

सार्वजनिक प्रकार

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
बुनियादी एंडपॉइंट की बुनियादी डाइनैमिक स्थिति.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
SendMsg तरीके के लिए फ़्लैग को ट्रांसमिट करें.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) टाइपडेफ़
void(*
मैसेज टेक्स्ट रिसेप्शन इवेंट हैंडलिंग फ़ंक्शन का टाइप.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) टाइपडेफ़
void(*
रिसेप्शन में गड़बड़ी के इवेंट को हैंडल करने का फ़ंक्शन.

सार्वजनिक विशेषताएं

OnMessageReceived
एंडपॉइंट's मैसेज के रिसेप्शन वाले इवेंट को मैनेज करने का फ़ंक्शन सौंपा गया.
OnReceiveError
एंडपॉइंट's को गड़बड़ी इवेंट हैंडलिंग फ़ंक्शन डेलिगेट मिलता है.
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 IP परत स्रोत और गंतव्य पते की जानकारी पाएं.

सार्वजनिक प्रकार

@8

 @8

बुनियादी एंडपॉइंट की बुनियादी डाइनैमिक स्थिति.

ऑब्जेक्ट को "रेडी&कोटेशन; स्थिति में ले जाया जाता है. इसके बाद, स्थानीय इंटरफ़ेस पते से बाध्य होने के बाद "बाउंड&कोटेशन की स्थिति पर जाएं. इसके बाद, ICMP मैसेज के रिसेप्शन के लिए इवेंट को हैंडल करने के लिए रजिस्टर जारी रखने वाली स्थिति के &&tt-list&intect पर जाएं.

ध्यान दें: बाइनरी कंपैटबिलिटी के लिए, kBasisState_Closed स्थिति को kState_Ready के हिसाब से मैप किया गया है. इसकी वजह यह है कि इन शर्तों को पूरा किया जा सकता है. मौजूदा kState_Closed, kState_Closed को अभी तक बंद नहीं किया गया है & &कोटेशन के बीच अंतर बताने के लिए अलग से मौजूद है; पहले “अब खुला हुआ है”, जो पहले kState_Ready और kState_Closed स्थितियों में मौजूद था.

प्रॉपर्टी
kState_Bound

एंडपॉइंट सीमित है, लेकिन सुन नहीं रहा है.

kState_Closed

एंडपॉइंट बंद है, रिलीज़ के लिए तैयार है.

kState_Listening

डेटाग्राम पाने वाले एंडपॉइंट.

kState_Ready

एंडपॉइंट शुरू हो गया, लेकिन खुला नहीं है.

@9

 @9

SendMsg तरीके के लिए फ़्लैग को ट्रांसमिट करें.

प्रॉपर्टी
kSendFlag_RetainBuffer

मैसेज को नुकसान पहुंचाने के मकसद से सीधे सूची में न जोड़ें.

कॉपी बनाएं.

OnMessageGetdFunct

void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)

मैसेज टेक्स्ट रिसेप्शन इवेंट हैंडलिंग फ़ंक्शन का टाइप.

endPoint का इस्तेमाल करके, मैसेज का टेक्स्ट पाने के लिए भेजे गए इवेंट को प्रोसेस करने के लिए, OnMessageReceived डेलिगेट सदस्य को इस तरह का फ़ंक्शन दें. यहां msg पर, मैसेज पाने वाले से मिला मैसेज टेक्स्ट होता है.

ब्यौरा
पैरामीटर
[in] endPoint
इवेंट से जुड़ा एंडपॉइंट.
[in] msg
मैसेज मिला.
[in] senderAddr
भेजने वाले का आईपी पता.

OnGetErrorFunct

void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)

रिसेप्शन में गड़बड़ी के इवेंट को हैंडल करने का फ़ंक्शन.

endPoint पर रिसेप्शन गड़बड़ी इवेंट को प्रोसेस करने के लिए OnReceiveError प्रतिनिधि को इस प्रकार का फ़ंक्शन दें. err तर्क, गड़बड़ी के प्रकार के बारे में खास जानकारी देता है.

ब्यौरा
पैरामीटर
[in] endPoint
इवेंट से जुड़ा एंडपॉइंट.
[in] err
गड़बड़ी की वजह.

सार्वजनिक विशेषताएं

Onमैसेजमिल गया

OnMessageReceivedFunct OnMessageReceived

एंडपॉइंट's मैसेज के रिसेप्शन वाले इवेंट को मैनेज करने का फ़ंक्शन सौंपा गया.

OnGetError

OnReceiveErrorFunct OnReceiveError

एंडपॉइंट's को गड़बड़ी इवेंट हैंडलिंग फ़ंक्शन डेलिगेट मिलता है.

मीस्टेट

enum nl::Inet::IPEndPointBasis::@8 mState

बुनियादी एंडपॉइंट की बुनियादी डाइनैमिक स्थिति.

ऑब्जेक्ट को "रेडी&कोटेशन; स्थिति में ले जाया जाता है. इसके बाद, स्थानीय इंटरफ़ेस पते से बाध्य होने के बाद "बाउंड&कोटेशन की स्थिति पर जाएं. इसके बाद, ICMP मैसेज के रिसेप्शन के लिए इवेंट को हैंडल करने के लिए रजिस्टर जारी रखने वाली स्थिति के &&tt-list&intect पर जाएं.

ध्यान दें: बाइनरी कंपैटबिलिटी के लिए, kBasisState_Closed स्थिति को kState_Ready के हिसाब से मैप किया गया है. इसकी वजह यह है कि इन शर्तों को पूरा किया जा सकता है. मौजूदा kState_Closed, kState_Closed को अभी तक बंद नहीं किया गया है & &कोटेशन के बीच अंतर बताने के लिए अलग से मौजूद है; पहले “अब खुला हुआ है”, जो पहले kState_Ready और kState_Closed स्थितियों में मौजूद था.

सुरक्षित एट्रिब्यूट

mBoundIntfId

InterfaceId mBoundIntfId

सार्वजनिक फ़ंक्शन

मल्टीकास्ट ग्रुप में शामिल हों

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

किसी IP मल्टीकास्ट समूह में शामिल हों.

बताए गए इंटरफ़ेस पर दिए गए मल्टीकास्ट ग्रुप से एंडपॉइंट में शामिल हों.

ब्यौरा
पैरामीटर
[in] aInterfaceId
मल्टीकास्ट ग्रुप में जोड़ने के लिए नेटवर्क इंटरफ़ेस का संकेत
[in] aAddress
मल्टीकास्ट ग्रुप में इंटरफ़ेस जोड़ना
सामान लौटाने की वैल्यू
INET_NO_ERROR
सफल: एक से ज़्यादा कास्ट करने वाले समूह को हटाया गया
INET_ERROR_UNKNOWN_INTERFACE
अज्ञात नेटवर्क इंटरफ़ेस, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress, kIPAddressType_IPv4 या kIPAddressType_IPv6 नहीं है या एक से ज़्यादा कास्ट नहीं हुई है
other
अन्य सिस्टम या प्लैटफ़ॉर्म की गड़बड़ी

मल्टीकास्ट ग्रुप छोड़ें

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

कोई IP मल्टीकास्ट समूह छोड़ें.

बताए गए इंटरफ़ेस पर दिए गए मल्टीकास्ट समूह से एंडपॉइंट हटाएं.

ब्यौरा
पैरामीटर
[in] aInterfaceId
मल्टीकास्ट ग्रुप से हटाने के लिए नेटवर्क इंटरफ़ेस का संकेत
[in] aAddress
मल्टीकास्ट ग्रुप से इंटरफ़ेस को हटाने के लिए
सामान लौटाने की वैल्यू
INET_NO_ERROR
सफल: एक से ज़्यादा कास्ट करने वाले समूह को हटाया गया
INET_ERROR_UNKNOWN_INTERFACE
अज्ञात नेटवर्क इंटरफ़ेस, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress, kIPAddressType_IPv4 या kIPAddressType_IPv6 नहीं है या एक से ज़्यादा कास्ट नहीं हुई है
other
अन्य सिस्टम या प्लैटफ़ॉर्म की गड़बड़ी

सेट मल्टीकास्टलूपबैक

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

सेट करें कि IP मल्टीकास्ट ट्रैफ़िक को वापस लूप में लाया जाए या नहीं.

सेट करें कि इस मल्टीकास्ट ट्रैफ़िक को इस एंडपॉइंट पर वापस लूप में भेजा जाए या नहीं.

ब्यौरा
पैरामीटर
[in] aIPVersion
[in] aLoop
सामान लौटाने की वैल्यू
INET_NO_ERROR
सफल: मल्टीकास्ट लूपबैक व्यवहार सेट
other
अन्य सिस्टम या प्लैटफ़ॉर्म की गड़बड़ी

सुरक्षित किए गए फ़ंक्शन

बाइंड

INET_ERROR Bind(
  IPAddressType aAddressType,
  IPAddress aAddress,
  uint16_t aPort,
  InterfaceId aInterfaceId
)

बाइंड इंटरफ़ेस

INET_ERROR BindInterface(
  IPAddressType aAddressType,
  InterfaceId aInterfaceId
)

GetSocket

INET_ERROR GetSocket(
  IPAddressType aAddressType,
  int aType,
  int aProtocol
)

GetleData मंज़ूरी मिली

void HandleDataReceived(
  Weave::System::PacketBuffer *aBuffer
)

हैंडलिंग बाकी है

void HandlePendingIO(
  uint16_t aPort
)

इनिट

void Init(
  InetLayer *aInetLayer
)

तैयार करें

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 जानकारी का इस्तेमाल 'hidden' होता है. यह ज़रूरी है, क्योंकि सिस्टम लेयर के इवेंट में सिर्फ़ दो आर्ग्युमेंट होते हैं. इस मामले में, पॉइंटर को एंड पॉइंट तक और बफ़र को बफ़र के बारे में बताने के लिए इस्तेमाल किया जाता है.

ब्यौरा
पैरामीटर
[in] aBuffer
आईपी मैसेज वाला पैकेट बफ़र
लौटाए गए सामान
सफलता पर पते की जानकारी का पॉइंटर; नहीं तो, पते की जानकारी के लिए पैकेट में ज़रूरी जगह न होने पर NULL होता है.

ज़्यादातर मामलों में, डेटा के काम करने से पहले जानकारी स्टोर करने की यह तरकीब इसलिए होती है, क्योंकि LwIP आईपी मैसेज के पहले बफ़र में वह स्पेस होता है जिसका इस्तेमाल ईथरनेट/आईपी/यूडीपी हेडर के लिए किया जाता था. हालांकि, IPPacketInfo स्ट्रक्चर (40 बाइट) के मौजूदा साइज़ को देखते हुए, हो सकता है कि एक पैकेट बफ़र में पेलोड के साथ स्ट्रक्चर को स्टोर करने के लिए काफ़ी जगह न हो. व्यावहारिक तौर पर, यह कार्रवाई सिर्फ़ उन IPv4 पैकेट के लिए होनी चाहिए जो ईथरनेट हेडर के बिना आते हैं.