UDP

Mô-đun này bao gồm các chức năng kiểm soát hoạt động giao tiếp UDP.

Tóm tắt

Bảng liệt kê

otNetifIdentifier{
  OT_NETIF_UNSPECIFIED = 0,
  OT_NETIF_THREAD,
  OT_NETIF_BACKBONE
}
enum
Xác định giá trị nhận dạng giao diện mạng OpenThread.

Typedef

otNetifIdentifier typedef
Xác định giá trị nhận dạng giao diện mạng OpenThread.
otUdpHandler)(void *aContext, const otMessage *aMessage, const otMessageInfo *aMessageInfo) typedef
bool(*
Lệnh gọi lại này cho phép OpenThread cung cấp trình xử lý cụ thể cho một số thông báo UDP nhất định.
otUdpReceive)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo) typedef
void(*
Lệnh gọi lại này cho phép OpenThread thông báo cho ứng dụng về thông báo UDP đã nhận.
otUdpReceiver typedef
struct otUdpReceiver
Đại diện cho trình thu UDP.
otUdpSocket typedef
struct otUdpSocket
Đại diện cho một ổ cắm UDP.

Hàm

otUdpAddReceiver(otInstance *aInstance, otUdpReceiver *aUdpReceiver)
Thêm bộ thu UDP.
otUdpBind(otInstance *aInstance, otUdpSocket *aSocket, const otSockAddr *aSockName, otNetifIdentifier aNetif)
Liên kết với một ổ cắm UDP/IPv6.
otUdpClose(otInstance *aInstance, otUdpSocket *aSocket)
Đóng ổ cắm UDP/IPv6.
otUdpConnect(otInstance *aInstance, otUdpSocket *aSocket, const otSockAddr *aSockName)
Kết nối với ổ cắm UDP/IPv6.
otUdpGetSockets(otInstance *aInstance)
Lấy tiêu đề trong danh sách Cổng UDP được liên kết.
otUdpIsOpen(otInstance *aInstance, const otUdpSocket *aSocket)
bool
Kiểm tra xem ổ cắm UDP có đang mở hay không.
otUdpNewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Phân bổ vùng đệm thông báo mới để gửi thông báo UDP.
otUdpOpen(otInstance *aInstance, otUdpSocket *aSocket, otUdpReceive aCallback, void *aContext)
Mở ổ cắm UDP/IPv6.
otUdpRemoveReceiver(otInstance *aInstance, otUdpReceiver *aUdpReceiver)
Xoá bộ thu UDP.
otUdpSend(otInstance *aInstance, otUdpSocket *aSocket, otMessage *aMessage, const otMessageInfo *aMessageInfo)
Gửi tin nhắn UDP/IPv6.
otUdpSendDatagram(otInstance *aInstance, otMessage *aMessage, otMessageInfo *aMessageInfo)
Gửi thông báo UDP mà không cần ổ cắm.

Cấu trúc

otUdpReceiver

Đại diện cho trình thu UDP.

otUdpSocket

Đại diện cho một ổ cắm UDP.

Bảng liệt kê

otNetifIdentifier

 otNetifIdentifier

Xác định giá trị nhận dạng giao diện mạng OpenThread.

Thuộc tính
OT_NETIF_BACKBONE

Giao diện xương sống.

OT_NETIF_THREAD

Giao diện Thread.

OT_NETIF_UNSPECIFIED

Giao diện mạng chưa được chỉ định.

Typedef

otNetifIdentifier

enum otNetifIdentifier otNetifIdentifier

Xác định giá trị nhận dạng giao diện mạng OpenThread.

otUdpHandler

bool(* otUdpHandler)(void *aContext, const otMessage *aMessage, const otMessageInfo *aMessageInfo)

Lệnh gọi lại này cho phép OpenThread cung cấp trình xử lý cụ thể cho một số thông báo UDP nhất định.

Thông tin chi tiết
Giá trị trả về
true
Thư đã được người nhận này xử lý và không nên được xử lý thêm.
false
Người nhận này không xử lý tin nhắn.

otUdpReceive

void(* otUdpReceive)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo)

Lệnh gọi lại này cho phép OpenThread thông báo cho ứng dụng về thông báo UDP đã nhận.

otUdpReceiver

struct otUdpReceiver otUdpReceiver

Đại diện cho trình thu UDP.

otUdpSocket

struct otUdpSocket otUdpSocket

Đại diện cho một ổ cắm UDP.

Hàm

otUdpAddReceiver

otError otUdpAddReceiver(
  otInstance *aInstance,
  otUdpReceiver *aUdpReceiver
)

Thêm bộ thu UDP.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aUdpReceiver
Con trỏ tới trình thu UDP.
Giá trị trả về
OT_ERROR_NONE
Đã thêm thành công người nhận.
OT_ERROR_ALREADY
Đã thêm bộ thu UDP.

otUdpBind

otError otUdpBind(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  const otSockAddr *aSockName,
  otNetifIdentifier aNetif
)

Liên kết với một ổ cắm UDP/IPv6.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aSocket
Con trỏ đến cấu trúc ổ cắm UDP.
[in] aSockName
Con trỏ đến cấu trúc địa chỉ của ổ cắm IPv6.
[in] aNetif
Giao diện mạng để liên kết.
Giá trị trả về
OT_ERROR_NONE
Đã liên kết thành công.
OT_ERROR_FAILED
Không liên kết được cổng UDP.

otUdpClose

otError otUdpClose(
  otInstance *aInstance,
  otUdpSocket *aSocket
)

Đóng ổ cắm UDP/IPv6.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aSocket
Con trỏ đến cấu trúc ổ cắm UDP.
Giá trị trả về
OT_ERROR_NONE
Đã đóng thành công ổ cắm.
OT_ERROR_FAILED
Không đóng được Ổ cắm UDP.

otUdpConnect

otError otUdpConnect(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  const otSockAddr *aSockName
)

Kết nối với ổ cắm UDP/IPv6.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aSocket
Con trỏ đến cấu trúc ổ cắm UDP.
[in] aSockName
Con trỏ đến cấu trúc địa chỉ của ổ cắm IPv6.
Giá trị trả về
OT_ERROR_NONE
Đã kết nối thành công.
OT_ERROR_FAILED
Không kết nối được ổ cắm UDP.

otUdpGetSockets

otUdpSocket * otUdpGetSockets(
  otInstance *aInstance
)

Lấy tiêu đề trong danh sách Cổng UDP được liên kết.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
Trả về
Con trỏ tới đầu danh sách được liên kết với UDP Socket.

otUdpIsOpen

bool otUdpIsOpen(
  otInstance *aInstance,
  const otUdpSocket *aSocket
)

Kiểm tra xem ổ cắm UDP có đang mở hay không.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aSocket
Con trỏ đến cấu trúc ổ cắm UDP.
Trả về
Liệu ổ cắm UDP có đang mở hay không.

otUdpNewMessage

otMessage * otUdpNewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

Phân bổ vùng đệm thông báo mới để gửi thông báo UDP.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aSettings
Con trỏ đến phần cài đặt thông báo hoặc giá trị NULL để sử dụng chế độ cài đặt mặc định.
Trả về
Con trỏ tới vùng đệm thông báo hoặc giá trị NULL nếu không có vùng đệm thông báo nào hoặc các tham số không hợp lệ.
Xem thêm:
otMessageFree

otUdpOpen

otError otUdpOpen(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  otUdpReceive aCallback,
  void *aContext
)

Mở ổ cắm UDP/IPv6.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aSocket
Con trỏ đến cấu trúc ổ cắm UDP.
[in] aCallback
Con trỏ đến hàm gọi lại của ứng dụng.
[in] aContext
Con trỏ đến ngữ cảnh dành riêng cho ứng dụng.
Giá trị trả về
OT_ERROR_NONE
Đã mở ổ cắm thành công.
OT_ERROR_FAILED
Không mở được ổ cắm.

otUdpRemoveReceiver

otError otUdpRemoveReceiver(
  otInstance *aInstance,
  otUdpReceiver *aUdpReceiver
)

Xoá bộ thu UDP.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aUdpReceiver
Con trỏ tới trình thu UDP.
Giá trị trả về
OT_ERROR_NONE
Đã xoá thành công người nhận.
OT_ERROR_NOT_FOUND
Chưa thêm bộ thu UDP.

otUdpSend

otError otUdpSend(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo
)

Gửi tin nhắn UDP/IPv6.

Nếu giá trị trả về là OT_ERROR_NONE, thì OpenThread sẽ sở hữu aMessage và phương thức gọi không còn tham chiếu đến aMessage nữa. Nếu giá trị trả về không phải là OT_ERROR_NONE, phương thức gọi vẫn giữ quyền sở hữu aMessage, bao gồm cả việc giải phóng aMessage nếu vùng đệm thông báo không còn cần thiết nữa.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aSocket
Con trỏ đến cấu trúc ổ cắm UDP.
[in] aMessage
Con trỏ đến vùng đệm thông báo.
[in] aMessageInfo
Con trỏ đến cấu trúc thông tin tin nhắn.

Thông tin chi tiết
Giá trị trả về
OT_ERROR_NONE
Thư đã được lên lịch gửi thành công.
OT_ERROR_INVALID_ARGS
Các đối số đã cung cấp không hợp lệ.
OT_ERROR_NO_BUFS
Không đủ bộ đệm để thêm các tiêu đề UDP và IPv6.

otUdpSendDatagram

otError otUdpSendDatagram(
  otInstance *aInstance,
  otMessage *aMessage,
  otMessageInfo *aMessageInfo
)

Gửi thông báo UDP mà không cần ổ cắm.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aMessage
Con trỏ đến một thông báo không có tiêu đề UDP.
[in] aMessageInfo
Con trỏ đến thông tin tin nhắn liên kết với aMessage.
Giá trị trả về
OT_ERROR_NONE
Đã thêm thông báo vào hàng đợi vào giao diện đầu ra.
OT_ERROR_NO_BUFS
Không đủ bộ đệm để thêm các tiêu đề IPv6.
OT_ERROR_INVALID_ARGS
Các đối số đã cung cấp không hợp lệ.

Tài nguyên

Các chủ đề tham khảo API OpenThread bắt nguồn từ mã nguồn, có trên GitHub. Để biết thêm thông tin hoặc để đóng góp cho tài liệu của chúng tôi, hãy tham khảo Tài nguyên.