nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

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

खास जानकारी

इनहेरिटेंस

इनसे इनहेरिट किया जाता है: nl::Inet::EndPointBasis
पहले से मालूम सब-क्लास:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

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

@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
एंडपॉइंट का मैसेज रिसेप्शन इवेंट मैनेज करने का फ़ंक्शन डेलिगेट.
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 पर ईमेल भेजने वाले व्यक्ति से मिला मैसेज है.

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

OnReceiveErrorFunct

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

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

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

जानकारी
पैरामीटर
[in] endPoint
इवेंट से जुड़ा एंडपॉइंट.
[in] 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
)

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

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

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

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

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

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

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

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

सेट करें कि आईपी मल्टीकास्ट ट्रैफ़िक को लूप में चलाना है या नहीं.

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

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

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

बाइंड

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

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

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