nl::Net::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Bu sınıfın nesneleri, tutarsız IP protokolü uç noktalarını temsil eder.

Özet

Devralma

Şunlardan devralır: nl::Inet::EndPointBasis
Doğrudan Bilinen Alt Sınıflar:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint

Herkese açık türler

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
Temel uç noktanın temel dinamik durumu.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
SendMsg yöntemi için seçenek işaretlerini işaretleyin.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) Tür
void(*
Mesaj metnini alma etkinliği işleme işlevinin türü.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) Tür
void(*
Resepsiyon hatası etkinliği işleme işlevinin türü.

Herkese açık özellikler

OnMessageReceived
Uç noktanın mesaj alma etkinliği işleme işlevi için yetki verilmiş kullanıcı.
OnReceiveError
Uç nokta, hata etkinliği işleme işlevi için yetki alıyor.
mState
enum nl::Inet::IPEndPointBasis::@8
Temel uç noktanın temel dinamik durumu.

Korunan özellikler

mBoundIntfId
InterfaceId

Herkese açık işlevler

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Bir IP çoklu yayın grubuna katılın.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Bir IP çoklu yayın grubundan çıkın.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
IP çoklu yayın trafiğinin geri döngüye alınıp alınmayacağını ayarlayın.

Korumalı işlevler

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)

Herkese açık statik işlevler

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

Korumalı statik işlevler

GetPacketInfo(Weave::System::PacketBuffer *buf)
LwIP IP katman kaynağı ve hedef adresleme bilgilerini alın.

Herkese açık türler

@8

 @8

Temel uç noktanın temel dinamik durumu.

Nesneler "hazır" durumunda başlatılır, yerel bir arayüz adresine bağlandıktan sonra "bağlı" durumuna geçer. Daha sonra, ICMP mesajlarının kabulü için etkinliklerin işlenmesine ilişkin devam eden kayıtların bulunduğu "dinleme" durumuna geçer.

Not: kBasisState_Closed durum numaralandırması, geçmiş ikili uyumluluk nedenleri nedeniyle kState_Ready ile eşlenir. Mevcut kState_Closed, daha önce kState_Ready ve kState_Closed eyaletlerinde yer alan "henüz açılmadı" ile "daha önce açılmış değil" arasındaki ayrımı belirtmek için kullanılır.

Özellikler
kState_Bound

Uç noktayla sınırlı ancak dinlenmiyor.

kState_Closed

Uç nokta kapatıldı, yayınlanmaya hazır.

kState_Listening

Uç noktaların veri şemalarını alması.

kState_Ready

Uç nokta başlatıldı ancak açık değil.

@9

 @9

SendMsg yöntemi için seçenek işaretlerini işaretleyin.

Özellikler
kSendFlag_RetainBuffer

İletiyi doğrudan yok etmeyin.

Bir kopyayı sıraya alın.

OnMessageReceivedFunct

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

Mesaj metnini alma etkinliği işleme işlevinin türü.

OnMessageReceived öğesinde yetki verilen üyeye endPoint türünde ileti metni alma etkinliklerini işlemek için bu tür bir işlev sağlayın. Burada msg, senderAddr adresinden gönderenden alınan ileti metnidir.

Ayrıntılar
Parametreler
[in] endPoint
Etkinlikle ilişkili uç nokta.
[in] msg
Alınan mesaj metni.
[in] senderAddr
Gönderenin IP adresi.

OnReceiveErrorFunct

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

Resepsiyon hatası etkinliği işleme işlevinin türü.

endPoint üzerinde resepsiyon hatası etkinliklerini işlemek için OnReceiveError yetki verilen üyesine bu türde bir işlev sağlayın. err bağımsız değişkeni, hatanın türü hakkında belirli ayrıntılar sağlar.

Ayrıntılar
Parametreler
[in] endPoint
Etkinlikle ilişkili uç nokta.
[in] err
Hatanın nedeni.

Herkese açık özellikler

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

Uç noktanın mesaj alma etkinliği işleme işlevi için yetki verilmiş kullanıcı.

OnReceiveHata

OnReceiveErrorFunct OnReceiveError

Uç nokta, hata etkinliği işleme işlevi için yetki alıyor.

mState

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

Temel uç noktanın temel dinamik durumu.

Nesneler "hazır" durumunda başlatılır, yerel bir arayüz adresine bağlandıktan sonra "bağlı" durumuna geçer. Daha sonra, ICMP mesajlarının kabulü için etkinliklerin işlenmesine ilişkin devam eden kayıtların bulunduğu "dinleme" durumuna geçer.

Not: kBasisState_Closed durum numaralandırması, geçmiş ikili uyumluluk nedenleri nedeniyle kState_Ready ile eşlenir. Mevcut kState_Closed, daha önce kState_Ready ve kState_Closed eyaletlerinde yer alan "henüz açılmadı" ile "daha önce açılmış değil" arasındaki ayrımı belirtmek için kullanılır.

Korunan özellikler

mBoundIntfId

InterfaceId mBoundIntfId

Herkese açık işlevler

BirleştirmeÇoklu Yayın Grubu

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Bir IP çoklu yayın grubuna katılın.

Uç noktayı belirtilen arayüzde sağlanan çoklu yayın grubuna ekleyin.

Ayrıntılar
Parametreler
[in] aInterfaceId
çoklu yayın grubuna eklenecek ağ arayüzünün göstergesi
[in] aAddress
arayüzü eklemek için çoklu yayın grubu
Döndürülen Değerler
INET_NO_ERROR
başarılı: çoklu yayın grubu kaldırıldı
INET_ERROR_UNKNOWN_INTERFACE
bilinmeyen ağ arayüzü, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress, kIPAddressType_IPv4 veya kIPAddressType_IPv6 değil veya çoklu yayın değil
other
başka bir sistem veya platform hatası

Çoklu Çoklu Grup Grubundan Çık

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Bir IP çoklu yayın grubundan çıkın.

Belirtilen arayüzde, sağlanan çoklu yayın grubundan uç noktayı kaldırın.

Ayrıntılar
Parametreler
[in] aInterfaceId
çoklu yayın grubundan kaldırılacak ağ arayüzü göstergesi
[in] aAddress
arayüzü kaldırmak için çoklu yayın grubu
Döndürülen Değerler
INET_NO_ERROR
başarılı: çoklu yayın grubu kaldırıldı
INET_ERROR_UNKNOWN_INTERFACE
bilinmeyen ağ arayüzü, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress, kIPAddressType_IPv4 veya kIPAddressType_IPv6 değil veya çoklu yayın değil
other
başka bir sistem veya platform hatası

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

IP çoklu yayın trafiğinin geri döngüye alınıp alınmayacağını ayarlayın.

IP çoklu yayın trafiğinin bu uç noktaya geri döngüye alınıp alınmayacağını belirleyin.

Ayrıntılar
Parametreler
[in] aIPVersion
[in] aLoop
Döndürülen Değerler
INET_NO_ERROR
başarılı: çoklu yayın geri dönüş davranışı grubu ayarlandı
other
başka bir sistem veya platform hatası

Korumalı işlevler

Bağla

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

Bağlama Bağlantısı

INET_ERROR BindInterface(
  IPAddressType aAddressType,
  InterfaceId aInterfaceId
)

GetSocket

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

Herkese Açık Kullanıcı Adı

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

Herkese Açık Kullanıcı Adı

void HandlePendingIO(
  uint16_t aPort
)

Başlangıç

void Init(
  InetLayer *aInetLayer
)

Hazırlık

SocketEvents PrepareIO(
  void
)

SMS Gönder

INET_ERROR SendMsg(
  const IPPacketInfo *aPktInfo,
  Weave::System::PacketBuffer *aBuffer,
  uint16_t aSendFlags
)

Herkese açık statik işlevler

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Korumalı statik işlevler

GetPacketBilgileri

IPPacketInfo * GetPacketInfo(
  Weave::System::PacketBuffer *buf
)

LwIP IP katman kaynağı ve hedef adresleme bilgilerini alın.

Paketle ilgili LwIP bilgileri 'gizli' paket arabelleğindeki verilerin başlangıcından önce ayrılmış alanda olmalıdır. Sistem katmanı etkinliklerinde yalnızca iki bağımsız değişken bulunduğu için bu gereklidir. Bu örnekte, işaretçiyi bitiş noktasına, işaretçiyi de arabelleğe almak için kullanılır.

Ayrıntılar
Parametreler
[in] aBuffer
IP mesajını içeren paket arabelleği
İadeler
İşaretçi başarılı olduğuna dair adres bilgilerini gösterir; aksi takdirde, pakette adres bilgileri için yeterli alan yoksa BOŞ olacaktır.

LwIP IP mesajındaki ilk arabellek, Ethernet/IP/UDP başlıkları için kullanılan alanı içerdiğinden çoğu durumda, veriler çalışmadan önce bilgileri depolamaya yönelik bir püf noktası oluşturur. Ancak, IPPacketInfo yapısının mevcut boyutu (40 bayt) dikkate alındığında, yük ile birlikte yapıyı tek bir paket arabelleğinde depolamak için yeterli yer olmayabilir. Pratikte bu, yalnızca Ethernet başlığı olmadan gelen aşırı büyük IPv4 paketleri için geçerlidir.