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ể khởi tạo.
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::IPEndPoint
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ờ tùy chọn cho phương thức SendMsg . |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Loại chức năng xử lý sự kiện nhận tin nhắn văn bản. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Loại chức năng xử lý sự kiện lỗi nhận tin nhắn. |
Thuộc tính công khai |
|
---|---|
OnMessageReceived
|
Thực thể đại diện cho chức năng xử lý sự kiện nhận tin nhắn của điểm cuối.
|
OnReceiveError
|
Điểm cuối\u9;s nhận được sự kiện ủy quyền 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 nhóm đ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)
|
Đặt xem có nên lặp lại lưu lượng truy cập đ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ề nguồn lớp LwIP và địa chỉ đích.
|
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 trong trạng thái "sẵn sàng" trạng thái, tiếp tục với trạng thái "bound" trạng thái sau khi liên kết với một địa chỉ giao diện cục bộ, sau đó tiếp tục với trạng thái "listening" trạng thái khi chúng được tiếp tục đăng ký để xử lý các sự kiện để nhận thông báo ICMP.
Lưu ý: Bảng liệt kê trạng thái kBasisState_Closed
được liên kết với kState_Ready
vì lý do tương thích với tệp nhị phân trong quá khứ. kState_Closed
hiện có để xác định riêng biệt sự khác biệt giữa "chưa mở" và "đã mở trước đó
hiện đã đóng cửa" tồn tại trước đây ở tiểu bang kState_Ready
và kState_Closed
.
Thuộc tính | |
---|---|
kState_Bound
|
Điểm cuối bị ràng buộc nhưng không nghe được. |
kState_Closed
|
Đã đóng điểm cuối, sẵn sàng để phát hành. |
kState_Listening
|
Điểm cuối nhận được biểu đồ dữ liệu. |
kState_Ready
|
Đã khởi chạy điểm cuối nhưng không mở. |
@9
@9
Truyền cờ tùy chọn cho phương thức SendMsg
.
Thuộc tính | |
---|---|
kSendFlag_RetainBuffer
|
Không trực tiếp đưa tin vào hàng đợi. Thêm một bản sao vào hàng đợi. |
OnMessage NhậndFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Loại chức năng xử lý sự kiện nhận tin nhắn văn bản.
Cung cấp một hàm thuộc loại này cho thành viên được ủy quyền của OnMessageReceived
để xử lý các sự kiện nhận văn bản qua tin nhắn trên endPoint
, trong đó msg
là văn bản tin nhắn đã nhận từ người gửi tại senderAddr
.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
Lỗi nhận
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
Loại chức năng xử lý sự kiện lỗi nhận tin nhắn.
Cung cấp một hàm thuộc loại này cho thành viên được ủy quyền của 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 thông số |
|
Thuộc tính công khai
Đã nhận tin nhắn
OnMessageReceivedFunct OnMessageReceived
Thực thể đại diện cho chức năng xử lý sự kiện nhận tin nhắn của điểm cuối.
Lỗi khi nhận
OnReceiveErrorFunct OnReceiveError
Điểm cuối\u9;s nhận được sự kiện ủy quyền xử lý sự kiện lỗi.
bang
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 trong trạng thái "sẵn sàng" trạng thái, tiếp tục với trạng thái "bound" trạng thái sau khi liên kết với một địa chỉ giao diện cục bộ, sau đó tiếp tục với trạng thái "listening" trạng thái khi chúng được tiếp tục đăng ký để xử lý các sự kiện để nhận thông báo ICMP.
Lưu ý: Bảng liệt kê trạng thái kBasisState_Closed
được liên kết với kState_Ready
vì lý do tương thích với tệp nhị phân trong quá khứ. kState_Closed
hiện có để xác định riêng biệt sự khác biệt giữa "chưa mở" và "đã mở trước đó
hiện đã đóng cửa" tồn tại trước đây ở tiểu bang kState_Ready
và kState_Closed
.
Thuộc tính được bảo vệ
mBoundIntfId
InterfaceId mBoundIntfId
Hàm công khai
Tham gia MulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Tham gia nhóm đa hướng IP.
Kết nối điểm cuối với nhóm đa hướng được cung cấp trên giao diện đã chỉ định.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||
Giá trị trả về |
|
Rời khỏi MulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Rời khỏi một nhóm phát đa hướng IP.
Xóa điểm cuối khỏi nhóm đa hướng được cung cấp trên giao diện đã chỉ định.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||
Giá trị trả về |
|
Đặt MulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Đặt xem có nên lặp lại lưu lượng truy cập đa hướng IP hay không.
Đặt xem có nên lặp lại lưu lượng truy cập đa hướng IP đến điểm cuối này hay không.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông 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 )
Giao diện người dùng liên kết
INET_ERROR BindInterface( IPAddressType aAddressType, InterfaceId aInterfaceId )
GetSocket
INET_ERROR GetSocket( IPAddressType aAddressType, int aType, int aProtocol )
Xử lý dữ liệu đã nhận
void HandleDataReceived( Weave::System::PacketBuffer *aBuffer )
Tay cầm đang chờ xử lý
void HandlePendingIO( uint16_t aPort )
Số nguyên
void Init( InetLayer *aInetLayer )
Giai đoạn chuẩn bị
SocketEvents PrepareIO( void )
Gửi tin nhắn
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ề nguồn lớp LwIP và địa chỉ đích.
Khi sử dụng thông tin LwIP về gói bị ẩn & Cần phải có vì sự kiện lớp hệ thống chỉ có hai đối số, trong trường hợp này dùng để truyền con trỏ đến điểm cuối và con trỏ vào bộ đệm.
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
||
Trả về |
con trỏ đến thông tin địa chỉ thành công; nếu không, giá trị sẽ là NULL nếu không có đủ khoảng trống trong gói cho thông tin địa chỉ.
|
Trong hầu hết các trường hợp, mẹo lưu trữ thông tin này trước khi dữ liệu hoạt động vì bộ đệm đầu tiên trong thông báo IP LwIP chứa khoảng trống được 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 đủ dung lượng để lưu trữ cấu trúc cùng với phần tải trong một bộ đệm gói duy nhất. Trong thực tế, điều này sẽ chỉ xảy ra đối với các gói IPv4 cực lớn đến khi không có tiêu đề Ethernet.