nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

Các đối tượng của lớp này đại diện cho các điểm cuối truyền tải UDP.

Tóm tắt

Lớp Inet của Nest đóng gói các phương thức tương tác với các điểm cuối truyền tải UDP (ổ cắm SOCK_DGRAM trên hệ thống bắt nguồn từ Linux và BSD) hoặc các khối điều khiển giao thức LwIP UDP, vì hệ thống được định cấu hình tương ứng.

Tính kế thừa

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

Hàm công khai

Bind(IPAddressType addrType, IPAddress addr, uint16_t port, InterfaceId intfId)
Liên kết điểm cuối với một địa chỉ IP của giao diện.
BindInterface(IPAddressType addrType, InterfaceId intf)
Liên kết điểm cuối với một 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 điểm cuối.
GetBoundInterface(void)
InterfaceId
Lấy giao diện ràng buộc trên điểm cuối này.
GetBoundPort(void)
uint16_t
Listen(void)
Chuẩn bị điểm cuối để nhận thông báo UDP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Gửi thông báo UDP đến một đích được chỉ định.
SendTo(IPAddress addr, uint16_t port, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Từ đồng nghĩa của SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, uint16_t port, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Gửi thông báo UDP tới địa chỉ đích được chỉ định.

Hàm công khai

Đóng gáy

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

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

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

Chi tiết
Tham số
[in] addrType
phiên bản giao thức của địa chỉ IP
[in] addr
địa chỉ IP (phải là một địa chỉ giao diện)
[in] port
cổng UDP
[in] intfId
chỉ báo giao diện mạng không bắt buộc
Giá trị trả về
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 đã được liên kết trước đó
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 tuỳ ý không có sẵ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, bạn không được gọi phương thức này khi đã thu nạp khoá ngăn xếp LwIP.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

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

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

Chi tiết
Tham 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ả về
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
chưa hoàn tất triển khai hệ thống.
INET_ERROR_UNKNOWN_INTERFACE
Trên một số nền tảng, giao diện này không xuất hiện.
other
lỗi hệ thống hoặc nền tảng khác

Trên LwIP, bạn không được gọi phương thức này khi đã thu nạp khoá ngăn xếp LwIP.

Đóng

void Close(
  void
)

Đóng điểm cuối.

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

Trên các hệ thống LwIP, bạn không được gọi phương thức này khi đã thu nạp được khoá ngăn xếp LwIP.

Miễn phí

void Free(
  void
)

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

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

Trên các hệ thống LwIP, bạn không được gọi phương thức này khi đã thu nạp được khoá ngăn xếp LwIP.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

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

Chi tiết
Trả về
InterfaceId Mã giao diện ràng buộc.

GetBoundPort

uint16_t GetBoundPort(
  void
)

Lắng nghe

INET_ERROR Listen(
  void
)

Chuẩn bị điểm cuối để nhận thông báo UDP.

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

Chi tiết
Giá trị trả về
INET_NO_ERROR
thành công: điểm cuối đã sẵn sàng nhận thông báo.
INET_ERROR_INCORRECT_STATE
thiết bị đầu cuối đang lắng nghe.

Trên LwIP, bạn không được gọi phương thức này khi đã thu nạp được khoá ngăn xếp LwIP

SendMsg

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

Gửi thông báo UDP đến một đích được chỉ định.

 Send the UDP message in \c msg to the destination address and port given in
 \c pktInfo.  If \c pktInfo contains an interface id, the message will be sent
 over the specified interface.  If \c pktInfo contains a source address, the
 given address will be used as the source of the UDP message.

 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
Tham số
[in] pktInfo
thông tin nguồn và đích của thông báo UDP
[in] msg
vùng đệm gói có chứa thông báo UDP
[in] sendFlags
cờ có tuỳ chọn truyền không bắt buộc
Giá trị trả về
INET_NO_ERROR
thành công: msg đã được đưa vào hàng đợi để truyền.
INET_ERROR_NOT_SUPPORTED
hệ thống không hỗ trợ thao tác được yêu cầu.
INET_ERROR_WRONG_ADDRESS_TYPE
địa chỉ đích và địa chỉ giao diện ràng buộc không có phiên bản giao thức hoặc loại địa chỉ trùng khớp.
INET_ERROR_MESSAGE_TOO_LONG
msg không chứa toàn bộ thông báo UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Trên một số nền tảng, chỉ một phần bị cắt bớt của msg được đưa vào hàng đợi để truyền.
other
lỗi hệ thống hoặc nền tảng khác

SendTo

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

Từ đồng nghĩa của SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags).

SendTo

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

Gửi thông báo UDP tới địa chỉ đích được chỉ định.

 If possible, then this method sends the UDP message \c msg to the
 destination \c addr (with \c intfId used as the scope
 identifier for IPv6 link-local destinations) and \c port with the
 transmit option flags encoded in \c sendFlags.

 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
Tham số
[in] addr
địa chỉ IP đích
[in] port
cổng UDP đích
[in] intfId
chỉ báo giao diện mạng không bắt buộc
[in] msg
vùng đệm gói chứa thông báo UDP
[in] sendFlags
cờ có tuỳ chọn truyền không bắt buộc
Giá trị trả về
INET_NO_ERROR
thành công: msg đã được đưa vào hàng đợi để truyền.
INET_ERROR_NOT_SUPPORTED
hệ thống không hỗ trợ thao tác được yêu cầu.
INET_ERROR_WRONG_ADDRESS_TYPE
địa chỉ đích và địa chỉ giao diện ràng buộc không có phiên bản giao thức hoặc loại địa chỉ trùng khớp.
INET_ERROR_MESSAGE_TOO_LONG
msg không chứa toàn bộ thông báo UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Trên một số nền tảng, chỉ một phần bị cắt bớt của msg được đưa vào hàng đợi để truyền.
other
lỗi hệ thống hoặc nền tảng khác