Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

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::EndPointBasis
Các lớp con đã biết trực tiếp:
nl::Inet::RawEndPoint
nl::IPEndPoint

Loại công khai

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
Trạng thái động cơ bản của điểm cuối cơ bản.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
Truyền cờ tùy chọn cho phương thức SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
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) typedef
void(*
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_ReadykState_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ố
[in] endPoint
Điểm cuối được liên kết với sự kiện.
[in] msg
Nội dung tin nhắn đã nhận được.
[in] senderAddr
Địa chỉ IP của người gửi.

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ố
[in] endPoint
Điểm cuối được liên kết với sự kiện.
[in] err
Nguyên nhân gây ra lỗi.

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_ReadykState_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ố
[in] aInterfaceId
chỉ báo của giao diện mạng để thêm vào nhóm đa hướng
[in] aAddress
nhóm đa hướng để thêm giao diện
Giá trị trả về
INET_NO_ERROR
thành công: nhóm đa hướng bị xóa
INET_ERROR_UNKNOWN_INTERFACE
giao diện mạng không xác định, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress không phải là kIPAddressType_IPv4 hoặc kIPAddressType_IPv6 hoặc không phải là đa hướng
other
lỗi hệ thống hoặc nền tảng khác

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ố
[in] aInterfaceId
chỉ báo của giao diện mạng để xóa khỏi nhóm đa hướng
[in] aAddress
nhóm đa hướng để xóa giao diện khỏi
Giá trị trả về
INET_NO_ERROR
thành công: nhóm đa hướng bị xóa
INET_ERROR_UNKNOWN_INTERFACE
giao diện mạng không xác định, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress không phải là kIPAddressType_IPv4 hoặc kIPAddressType_IPv6 hoặc không phải là đa hướng
other
lỗi hệ thống hoặc nền tảng khác

Đặ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ố
[in] aIPVersion
[in] aLoop
Giá trị trả về
INET_NO_ERROR
thành công: nhóm hành vi vòng lặp đa hướng
other
lỗi hệ thống hoặc nền tảng khác

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ố
[in] aBuffer
bộ đệm gói chứa thông báo IP
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.