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.
Trang này được dịch bởi Cloud Translation API.
Switch to English

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 lược

Di sản

Kế thừa từ: nl :: Inet :: EndPointBasis
Các lớp con đã biết trực tiếp:
  nl :: Inet :: RawEndPoint
  nl :: Inet :: UDPEndPoint

Các 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 bên dưới.
@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 tiếp nhận văn bản tin nhắ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 tiếp nhận.

Thuộc tính công cộng

OnMessageReceived
Đại biểu chức năng xử lý sự kiện tiếp nhận thông báo của điểm cuối.
OnReceiveError
Đại diện chức năng xử lý sự kiện lỗi nhận của điểm cuối.
mState
enum nl::Inet::IPEndPointBasis::@8
Trạng thái động cơ bản của điểm cuối bên dưới.

Thuộc tính được bảo vệ

mBoundIntfId
InterfaceId

Chức năng công cộng

JoinMulticastGroup (InterfaceId aInterfaceId, const IPAddress & aAddress)
Tham gia 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)
Đặt xem lưu lượng IP multicast có được lặp lại hay không.

Các chức năng đượ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)

Chức năng tĩnh công khai

FindNetifFromInterfaceId (InterfaceId aInterfaceId)
struct netif *

Các chức năng tĩnh được bảo vệ

GetPacketInfo ( Weave::System::PacketBuffer *buf)
Nhận thông tin địa chỉ nguồn và địa chỉ đích của lớp LwIP IP.

Các loại công khai

@số 8

 @8

Trạng thái động cơ bản của điểm cuối bên dưới.

Các đối tượng được khởi tạo ở trạng thái "sẵn sàng", chuyển sang trạng thái "bị 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 "lắng nghe" khi chúng có đăng ký liên tục để 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 ánh xạ tới kState_Ready vì lý do tương thích nhị phân lịch sử. Các hiện kState_Closed tồn tại để xác định riêng rẽ sự phân biệt giữa "không mở được nêu ra" và "trước đây nay đã mở đóng cửa" đã tồn tại trước đó trong kState_ReadykState_Closed tiểu bang.

Tính chất
kState_Bound

Điểm 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

Biểu đồ nhận dữ liệu điểm cuối.

kState_Ready

Điểm cuối được khởi tạo, nhưng không mở.

@ 9

 @9

Truyền cờ tùy chọn cho phương thức SendMsg .

Tính chất
kSendFlag_RetainBuffer

Đừng phá hủy hàng đợi tin nhắn trực tiếp.

Xếp hàng đợi một bản sao.

OnMessageReceiveFunct

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

Loại chức năng xử lý sự kiện tiếp nhận văn bản tin nhắn.

Cung cấp một chức năng thuộc loại này với OnMessageReceived viên đại biểu để thông điệp quá trình sự kiện tiếp nhận văn bản trên endPoint nơi msg là nội dung tin nhắn nhận được từ người gửi tại senderAddr .

Chi tiết
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.

OnReceiveErrorFunct

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

Loại chức năng 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 ủy nhiệm OnReceiveError để xử lý các sự kiện lỗi tiếp nhận trên endPoint . Các err luận cung cấp chi tiết cụ thể về loại lỗi.

Chi tiết
Thông số
[in] endPoint
Điểm cuối được liên kết với sự kiện.
[in] err
Lý do cho lỗi.

Thuộc tính công cộng

OnMessageReceive

OnMessageReceivedFunct OnMessageReceived

Đại biểu chức năng xử lý sự kiện tiếp nhận thông báo của điểm cuối.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

Đại diện chức năng xử lý sự kiện lỗi 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 bên dưới.

Các đối tượng được khởi tạo ở trạng thái "sẵn sàng", chuyển sang trạng thái "bị 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 "lắng nghe" khi chúng có đăng ký liên tục để 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 ánh xạ tới kState_Ready vì lý do tương thích nhị phân lịch sử. Các hiện kState_Closed tồn tại để xác định riêng rẽ sự phân biệt giữa "không mở được nêu ra" và "trước đây nay đã mở đóng cửa" đã tồn tại trước đó trong kState_ReadykState_Closed tiểu bang.

Thuộc tính được bảo vệ

mBoundIntfId

InterfaceId mBoundIntfId

Chức năng công cộng

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Tham gia nhóm phát đa hướng IP.

Tham gia điểm cuối vào nhóm phát đa hướng được cung cấp trên giao diện được chỉ định.

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

Rời khỏiMulticastGroup

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 phát đa hướng được cung cấp trên giao diện được chỉ định.

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

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Đặt xem có nên lặp lại lưu lượng IP multicast hay không.

Đặt xem có nên lặp lại lưu lượng IP multicast trở lại điểm cuối này hay không.

Chi tiết
Thông số
[in] aIPVersion
[in] aLoop
Giá trị trả lại
INET_NO_ERROR
thành công: bộ hành vi lặp lại đa hướng
other
lỗi hệ thống hoặc nền tảng khác

Các chức năng được bảo vệ

Trói buộc

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
)

Xử lý dữ liệu được nhận

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

HandlePendingIO

void HandlePendingIO(
  uint16_t aPort
)

Trong đó

void Init(
  InetLayer *aInetLayer
)

Chuẩn bị

SocketEvents PrepareIO(
  void
)

SendMsg

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

Chức năng tĩnh công khai

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Các chức năng tĩnh được bảo vệ

GetPacketInfo

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

Nhận thông tin địa chỉ nguồn và địa chỉ đích của lớp LwIP IP.

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 bộ đệ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 sử dụng để truyền con trỏ đến điểm cuối và con trỏ tới bộ đệm.

Chi tiết
Thông số
[in] aBuffer
bộ đệm gói chứa thông điệp IP
Lợi nhuận
một con trỏ đến thông tin địa chỉ về thành công; ngược lại, 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 trước khi dữ liệu hoạt động vì bộ đệm đầu tiên trong thông báo IP LwIP chứa không gian được sử dụng cho các tiêu đề Ethernet / IP / UDP. Tuy nhiên, với kích thước hiện tại của cấu trúc IPPacketInfo (40 byte), có thể không có đủ chỗ để lưu cấu trúc cùng với trọng tải trong một bộ đệm gói duy nhất. Trong thực tế, điều này chỉ xảy ra đối với các gói IPv4 cực lớn đến mà không có tiêu đề Ethernet.