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 :: RawEndPoint

#include <src/inet/RawEndPoint.h>

Các đối tượng của lớp này đại diện cho các điểm cuối mạng IP thô.

Tóm lược

Nest Inet Layer đóng gói các phương thức tương tác với các điểm cuối mạng IP (ổ cắm SOCK_RAW trên hệ thống dẫn xuất Linux và BSD) hoặc các khối điều khiển giao thức thô LwIP, khi hệ thống được định cấu hình phù hợp.

Di sản

Kế thừa từ: nl :: Inet :: IPEndPointBasis

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

IPProto
IPProtocol
phiên bản của Giao thức thông báo kiểm soát Internet (ICMP)
IPVer
IPVersion
Phiên bản của giao thức Internet.

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

Bind (IPAddressType addrType, IPAddress addr, InterfaceId intfId)
Liên kết điểm cuối với một địa chỉ IP giao diện.
BindIPv6LinkLocal (InterfaceId intf, IPAddress addr)
Liên kết điểm cuối thô với địa chỉ phạm vi liên kết cục bộ IPv6 tại chỉ mục giao diện được chỉ định.
BindInterface (IPAddressType addrType, InterfaceId intf)
Liên kết điểm cuối với giao diện mạng.
Close (void)
void
Đóng điểm cuối.
Free (void)
void
Đóng điểm cuối và tái chế bộ nhớ của nó.
GetBoundInterface (void)
InterfaceId
Nhận giao diện ràng buộc trên điểm cuối này.
Listen (void)
Chuẩn bị điểm cuối để nhận tin nhắn ICMP.
SendMsg (const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Gửi tin nhắn ICMP đến điểm đến được chỉ định.
SendTo ( IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Từ đồng nghĩa với SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags) .
SendTo ( IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Gửi tin nhắn ICMP đến địa chỉ đích đã chỉ định.
SetICMPFilter (uint8_t numICMPTypes, const uint8_t *aICMPTypes)
Đặt thông số bộ lọc ICMP6 trong ngăn xếp mạng.

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

IPProto

IPProtocol IPProto

phiên bản của Giao thức thông báo kiểm soát Internet (ICMP)

Trong khi trường này là một biến lớp có thể thay đổi, nó là một biến của lớp mà nó không được sửa đổi.

IPVer

IPVersion IPVer

Phiên bản của giao thức Internet.

Trong khi trường này là một biến lớp có thể thay đổi, nó là một biến của lớp mà nó không được sửa đổi.

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

Trói buộc

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  InterfaceId intfId
)

Liên kết điểm cuối với một địa chỉ IP giao diện.

Liên kết điểm cuối với địa chỉ IP giao diện mạng được chỉ định.

Chi tiết
Thông số
[in] addrType
phiên bản giao thức của địa chỉ IP
[in] addr
địa chỉ IP (phải là địa chỉ giao diện)
[in] intfId
một chỉ báo giao diện mạng tùy chọn
Giá trị trả lại
INET_NO_ERROR
thành công: điểm cuối liên kết với địa chỉ
INET_ERROR_INCORRECT_STATE
điểm cuối đã bị ràng buộc trước đây
INET_NO_MEMORY
không đủ bộ nhớ cho điểm cuối
INET_ERROR_UNKNOWN_INTERFACE
Trên một số nền tảng, giao diện được chỉ định tùy chọn không xuất hiện.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType không khớp với IPVer .
INET_ERROR_WRONG_ADDRESS_TYPE
addrTypekIPAddressType_Any , hoặc loại addr không bằng addrType .
other
lỗi hệ thống hoặc nền tảng khác

Trên LwIP, phương thức này không được gọi với khóa ngăn xếp LwIP đã có.

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

Liên kết điểm cuối thô với địa chỉ phạm vi liên kết cục bộ IPv6 tại chỉ mục giao diện được chỉ định.

Đồng thời đặt các tùy chọn ổ cắm IPv6 khác nhau thích hợp để truyền các gói đến và đi từ các điểm đến trên liên kết.

Liên kết với các thiết bị đầu cuối cho IPv6 link-local địa chỉ addr trên giao diện mạng được chỉ định bởi intf .

Chi tiết
Thông số
[in] intf
Một InterfaceId để xác định phạm vi của địa chỉ.
[in] addr
Một đối tượng IPAddress phạm vi liên kết cục bộ IPv6.
Thông số
[in] intf
chỉ báo của giao diện mạng
[in] addr
địa chỉ IP (phải là địa chỉ giao diện)
Giá trị trả lại
INET_NO_ERROR
thành công: điểm cuối liên kết với địa chỉ
INET_ERROR_INCORRECT_STATE
điểm cuối đã bị ràng buộc trước đây
INET_NO_MEMORY
không đủ bộ nhớ cho điểm cuối
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType không khớp với IPVer .
INET_ERROR_WRONG_ADDRESS_TYPE
addr không phải là địa chỉ liên kết cục bộ IPv6 hoặc intfINET_NULL_INTERFACEID .
other
lỗi hệ thống hoặc nền tảng khác
Lợi nhuận
INET_NO_ERROR nếu thành công hoặc lỗi hệ điều hành được ánh xạ khi thất bại. Danh sách thông số không hợp lệ có thể dẫn đến INET_ERROR_WRONG_ADDRESS_TYPE. Nếu điểm cuối thô đã bị ràng buộc hoặc đang lắng nghe, thì trả về INET_ERROR_INCORRECT_STATE. Liên kết điểm cuối với địa chỉ liên kết cục bộ IPv6 giao diện.

Trên LwIP, phương thức này không được gọi với khóa ngăn xếp LwIP đã có.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Liên kết điểm cuối với giao diện mạng.

Liên kết điểm cuối với địa chỉ IP giao diện mạng được chỉ định.

Chi tiết
Thông số
[in] addrType
phiên bản giao thức của địa chỉ IP.
[in] intf
chỉ báo của giao diện mạng.
Giá trị trả lại
INET_NO_ERROR
thành công: điểm cuối liên kết với địa chỉ
INET_NO_MEMORY
không đủ bộ nhớ cho điểm cuối
INET_ERROR_NOT_IMPLEMENTED
triển khai hệ thống không hoàn chỉnh.
INET_ERROR_UNKNOWN_INTERFACE
Trên một số nền tảng, giao diện không hiện diện.
other
lỗi hệ thống hoặc nền tảng khác

Trên LwIP, phương thức này không được gọi với khóa ngăn xếp LwIP đã có.

Đóng

void Close(
  void
)

Đóng điểm cuối.

Nếu mState != kState_Closed , thì đóng điểm cuối, xóa nó khỏi tập hợp các điểm cuối đủ điều kiện cho các sự kiện giao tiếp.

Trên hệ thống LwIP, phương thức này không được gọi với khóa ngăn xếp LwIP đã có.

Miễn phí

void Free(
  void
)

Đóng điểm cuối và tái chế bộ nhớ của nó.

Gọi phương thức Close , sau đó gọi phương thức InetLayerBasis::Release để trả đối tượng về vùng nhớ của nó.

Trên hệ thống LwIP, phương thức này không được gọi với khóa ngăn xếp LwIP đã có.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Nhận giao diện ràng buộc trên điểm cuối này.

Chi tiết
Lợi nhuận
InterfaceId Id giao diện liên kết.

Nghe

INET_ERROR Listen(
  void
)

Chuẩn bị điểm cuối để nhận tin nhắn ICMP.

Nếu mState đã là kState_Listening thì không có thao tác nào được thực hiện, nếu không thì mState được đặt thành kState_Listening và điểm cuối được chuẩn bị để nhận các thông báo ICMPv6, theo ngữ nghĩa của nền tảng.

Chi tiết
Giá trị trả lại
INET_NO_ERROR
luôn được trả lại.

Trên LwIP, phương thức này không được gọi với khóa ngăn xếp LwIP đã có

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Gửi tin nhắn ICMP đến điểm đến được chỉ định.

 Send the ICMP message \c msg using the destination information given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Chi tiết
Thông số
[in] pktInfo
thông tin đích cho tin nhắn
[in] msg
bộ đệm gói chứa thông báo UDP
[in] sendFlags
cờ tùy chọn truyền tùy chọn
Giá trị trả lại
INET_NO_ERROR
thành công: msg được xếp hàng đợi để truyền.
INET_ERROR_NOT_SUPPORTED
hệ thống không hỗ trợ hoạt động được yêu cầu.
INET_ERROR_WRONG_ADDRESS_TYPE
địa chỉ đích và địa chỉ giao diện liên kết không có phiên bản giao thức hoặc loại địa chỉ phù hợp.
INET_ERROR_MESSAGE_TOO_LONG
msg không chứa toàn bộ tin nhắn ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Trên một số nền tảng, chỉ một phần msg bị cắt ngắn được xếp hàng đợi để truyền.
other
lỗi hệ thống hoặc nền tảng khác

Gửi đến

INET_ERROR SendTo(
  IPAddress addr,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Từ đồng nghĩa với SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags) .

Gửi đến

INET_ERROR SendTo(
  IPAddress addr,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Gửi tin nhắn ICMP đến địa chỉ đích đã chỉ định.

 Send the ICMP message in \c msg to the destination given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Chi tiết
Thông số
[in] addr
địa chỉ IP đích
[in] intfId
một chỉ báo giao diện mạng tùy chọn
[in] msg
bộ đệm gói chứa thông báo UDP
[in] sendFlags
cờ tùy chọn truyền tùy chọn
Giá trị trả lại
INET_NO_ERROR
thành công: msg được xếp hàng đợi để truyền.
INET_ERROR_NOT_SUPPORTED
hệ thống không hỗ trợ hoạt động được yêu cầu.
INET_ERROR_WRONG_ADDRESS_TYPE
địa chỉ đích và địa chỉ giao diện liên kết không có phiên bản giao thức hoặc loại địa chỉ phù hợp.
INET_ERROR_MESSAGE_TOO_LONG
msg không chứa toàn bộ tin nhắn ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Trên một số nền tảng, chỉ một phần msg bị cắt ngắn được xếp hàng đợi để truyền.
other
lỗi hệ thống hoặc nền tảng khác

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

Đặt thông số bộ lọc ICMP6 trong ngăn xếp mạng.

Áp dụng các thông số lọc ICMPv6 cho các mã trong aICMPTypes cho điểm cuối cơ bản trong ngăn xếp mạng hệ thống.

Chi tiết
Thông số
[in] numICMPTypes
độ dài của mảng tại aICMPTypes
[in] aICMPTypes
bộ mã loại ICMPv6 để lọc.
Giá trị trả lại
INET_NO_ERROR
thành công: bộ thông số bộ lọc
INET_ERROR_NOT_IMPLEMENTED
hệ thống không thực hiện
INET_ERROR_WRONG_ADDRESS_TYPE
điểm cuối không phải loại IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
điểm cuối không phải loại ICMP6
other
lỗi hệ thống hoặc nền tảng khác