nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Các đối tượng của lớp này đại diện cho các điểm cuối giao thức IP không thể tạo thực thể.
Tóm tắt
Tính kế thừa
Kế thừa từ: nl::Inet::EndPointBasisCác lớp con đã biết trực tiếp:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Loại công khai |
|
---|---|
@8{
|
enum Trạng thái động cơ bản của điểm cuối cơ bản. |
@9{
|
enum Truyền cờ tuỳ chọn cho phương thức SendMsg . |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Loại hàm xử lý sự kiện nhận văn bản tin nhắn. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Loại hàm xử lý sự kiện lỗi tiếp nhận. |
Thuộc tính công khai |
|
---|---|
OnMessageReceived
|
Tính năng uỷ quyền xử lý sự kiện nhận tin nhắn của điểm cuối.
|
OnReceiveError
|
Điểm cuối nhận uỷ quyền hàm xử lý sự kiện lỗi.
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
Trạng thái động cơ bản của điểm cuối cơ bản.
|
Thuộc tính được bảo vệ |
|
---|---|
mBoundIntfId
|
InterfaceId
|
Hàm công khai |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Tham gia một nhóm phát đa hướng IP.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Rời khỏi một nhóm phát đa hướng IP.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Thiết lập xem có nên lặp lại lưu lượng truy cập phát đa hướng IP hay không.
|
Hàm được bảo vệ |
|
---|---|
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)
|
Hàm tĩnh công khai |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
Hàm tĩnh được bảo vệ |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
Nhận thông tin về địa chỉ nguồn và đích đến của lớp IP LwIP.
|
Loại công khai
@8
@8
Trạng thái động cơ bản của điểm cuối cơ bản.
Các đối tượng được khởi tạo ở trạng thái "sẵn sàng", tiếp tục chuyển sang trạng thái "ràng buộc" sau khi liên kết với một địa chỉ giao diện cục bộ, sau đó chuyển sang trạng thái "nghe" khi chúng đã đăng ký các gói tiếp tục để xử lý sự kiện nhận thông báo ICMP.
Lưu ý: Bảng liệt kê trạng thái kBasisState_Closed
được ánh xạ tới kState_Ready
vì các lý do trước đây về khả năng tương thích với tệp nhị phân. kState_Closed
hiện có tồn tại để xác định riêng sự khác biệt giữa trạng thái " chưa mở" và "đã mở trước đó hiện đã đóng" từng tồn tại ở trạng thái kState_Ready
và kState_Closed
.
Thuộc tính | |
---|---|
kState_Bound
|
Thiết bị đầu cuối đã bị ràng buộc nhưng không lắng nghe. |
kState_Closed
|
Điểm cuối đã đóng, sẵn sàng phát hành. |
kState_Listening
|
Điểm cuối nhận gói tin. |
kState_Ready
|
Điểm cuối đã khởi chạy nhưng chưa mở. |
@9
@9
Truyền cờ tuỳ chọn cho phương thức SendMsg
.
Thuộc tính | |
---|---|
kSendFlag_RetainBuffer
|
Không xếp trực tiếp tin nhắn vào hàng đợi gây thiệt hại. Thêm một bản sao vào hàng đợi. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Loại hàm xử lý sự kiện nhận văn bản tin nhắn.
Cung cấp một chức năng thuộc loại này cho thành viên uỷ quyền OnMessageReceived
để xử lý các sự kiện nhận tin nhắn văn bản trên endPoint
, trong đó msg
là văn bản tin nhắn nhận được từ người gửi tại senderAddr
.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các tham số |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
Loại hàm xử lý sự kiện lỗi tiếp nhận.
Cung cấp một chức năng thuộc loại này cho thành viên uỷ quyền OnReceiveError
để xử lý các sự kiện lỗi tiếp nhận trên endPoint
. Đối số err
cung cấp thông tin chi tiết cụ thể về loại lỗi.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
Thuộc tính công khai
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
Tính năng uỷ quyền xử lý sự kiện nhận tin nhắn của điểm cuối.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
Trạng thái động cơ bản của điểm cuối cơ bản.
Các đối tượng được khởi tạo ở trạng thái "sẵn sàng", tiếp tục chuyển sang trạng thái "ràng buộc" sau khi liên kết với một địa chỉ giao diện cục bộ, sau đó chuyển sang trạng thái "nghe" khi chúng đã đăng ký các gói tiếp tục để xử lý sự kiện nhận thông báo ICMP.
Lưu ý: Bảng liệt kê trạng thái kBasisState_Closed
được ánh xạ tới kState_Ready
vì các lý do trước đây về khả năng tương thích với tệp nhị phân. kState_Closed
hiện có tồn tại để xác định riêng sự khác biệt giữa trạng thái " chưa mở" và "đã mở trước đó hiện đã đóng" từng tồn tại ở trạng thái kState_Ready
và kState_Closed
.
Thuộc tính được bảo vệ
mBoundIntfId
InterfaceId mBoundIntfId
Hàm công khai
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Tham gia một nhóm phát đa hướng IP.
Tham gia điểm cuối với nhóm phát đa hướng đã cung cấp trên giao diện được chỉ định.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các tham số |
|
||||||||
Giá trị trả về |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Rời khỏi một nhóm phát đa hướng IP.
Xoá điểm cuối khỏi nhóm phát đa hướng đã cung cấp trên giao diện được chỉ định.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các tham số |
|
||||||||
Giá trị trả về |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Thiết lập xem có nên lặp lại lưu lượng truy cập phát đa hướng IP hay không.
Thiết lập xem có nên lặp lại lưu lượng truy cập phát đa hướng IP với điểm cuối này hay không.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
||||
Giá trị trả về |
|
Hàm được bảo vệ
Liên kết
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 )
Bắt đầu
void Init( InetLayer *aInetLayer )
PrepareIO
SocketEvents PrepareIO( void )
SendMsg
INET_ERROR SendMsg( const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags )
Hàm tĩnh công khai
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
Hàm tĩnh được bảo vệ
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Nhận thông tin về địa chỉ nguồn và đích đến của lớp IP LwIP.
Khi sử dụng LwIP, thông tin về gói được 'ẩn' trong không gian dành riêng trước khi bắt đầu dữ liệu trong vùng đệm gói. Điều này là cần thiết vì các sự kiện lớp hệ thống chỉ có hai đối số. Trong trường hợp này, các đối số được dùng để truyền con trỏ đến điểm cuối và con trỏ đến vùng đệm.
Thông tin chi tiết | |||
---|---|---|---|
Các tham số |
|
||
Trả về |
một con trỏ tới thông tin địa chỉ khi thành công; nếu không, là NULL nếu không có đủ dung lượng trong gói cho thông tin địa chỉ.
|
Trong hầu hết các trường hợp, thủ thuật lưu trữ thông tin này trước khi dữ liệu hoạt động vì vùng đệm đầu tiên trong thông báo IP LwIP chứa khoảng trống được sử dụng cho các tiêu đề Ethernet/IP/UDP. Tuy nhiên, do kích thước hiện tại của cấu trúc IPPacketInfo (40 byte) nên có thể không có đủ chỗ để lưu trữ cấu trúc cùng với tải trọng trong một vùng đệm gói. Trong thực tế, điều này chỉ xảy ra với các gói IPv4 cực lớn đến mà không có tiêu đề Ethernet.