nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
此類別的物件代表無法檢索的 IP 通訊協定端點。
總結
繼承
沿用來源: nl::Inet::EndPointBasis直接已知子類別:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
公開類型 |
|
---|---|
@8{
|
列舉 基礎端點的基本動態狀態。 |
@9{
|
列舉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)
|
加入 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 訊息,則會繼續處理。
注意:基於二進位二進位原因,kBasisState_Closed
狀態列舉已對應到 kState_Ready
。現有的kState_Closed
是用來分辨「尚未開放」和「先前開啟的」和「新開幕」之間的差別。kState_Ready
和先前kState_Closed
相同的狀態
屬性 | |
---|---|
kState_Bound
|
端點已繫結,但無法聽取。 |
kState_Closed
|
端點已關閉,可發布。 |
kState_Listening
|
端點接收資料圖表。 |
kState_Ready
|
端點已初始化,但無法開啟。 |
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
引數會提供關於錯誤類型的特定詳細資料。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
公開屬性
MState
enum nl::Inet::IPEndPointBasis::@8 mState
基礎端點的基本動態狀態。
物件會初始化在「就緒」狀態中;繼續,代表「已繫結」;在繫結至本機介面位址後,則會進入「監聽」狀態;如果物件持續處理以接收 ICMP 訊息,則會繼續處理。
注意:基於二進位二進位原因,kBasisState_Closed
狀態列舉已對應到 kState_Ready
。現有的kState_Closed
是用來分辨「尚未開放」和「先前開啟的」和「新開幕」之間的差別。kState_Ready
和先前kState_Closed
相同的狀態
受保護的屬性
mBoundIntfId
InterfaceId mBoundIntfId
公開函式
加入多重投放群組
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
加入 IP 多播群組。
將端點加入指定介面提供的多播群組。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
退出多播群組
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
退出 IP 多播群組。
從提供的介面上,從提供的多播群組中移除端點。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
設定 Multicast Loopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
設定是否要將 IP 多點傳送流量循環循環。
設定 IP 多播流量是否應該循環回這個端點。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
受保護的函式
繫結
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 )
處理資料已接收
void HandleDataReceived( Weave::System::PacketBuffer *aBuffer )
處理待處理的 IO
void HandlePendingIO( uint16_t aPort )
Init
void Init( InetLayer *aInetLayer )
準備
SocketEvents PrepareIO( void )
傳送
INET_ERROR SendMsg( const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags )
公開的靜態函式
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
受保護的靜態函式
取得封包資訊
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
取得 LwIP IP 層來源和目的地位址資訊。
使用 LwIP 信息數據包的信息是 'hidden'在數據包緩衝緩軍緩衝符開始之前的保留空間中。這是可行的,因為系統圖層事件只有兩個引數,在這個例子中,它是用於將指標傳送到終點,然後將指標傳送至緩衝區。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
指向成功資訊的地址資訊;如果地址資訊的封包不足,則傳回 NULL。
|
在大多數情況下,這項技巧會讓資料在資料開始之前得以儲存,因為 LwIP IP 訊息中的第一個緩衝區含有乙太網路/IP/UDP 標頭所用的空間。不過,由於目前的 IPPacketInfo 結構大小 (40 位元組) 存在,所以沒有足夠的空間可將結構與酬載一起儲存在單一封包緩衝區中。在實務上,這只適用於發生不含乙太網路標頭的超大型 IPv4 封包時。