UDP

โมดูลนี้ประกอบด้วยฟังก์ชันที่ควบคุมการสื่อสารผ่าน UDP

สรุป

การแจกแจง

otNetifIdentifier{
  OT_NETIF_UNSPECIFIED = 0,
  OT_NETIF_THREAD,
  OT_NETIF_BACKBONE
}
enum
กำหนดตัวระบุอินเทอร์เฟซเครือข่าย OpenThread

Typedef

otNetifIdentifier typedef
กำหนดตัวระบุอินเทอร์เฟซเครือข่าย OpenThread
otUdpHandler)(void *aContext, const otMessage *aMessage, const otMessageInfo *aMessageInfo) typedef
bool(*
โค้ดเรียกกลับนี้ช่วยให้ OpenThread สามารถระบุเครื่องจัดการที่เฉพาะเจาะจงสำหรับข้อความ UDP บางรายการ
otUdpReceive)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo) typedef
void(*
โค้ดเรียกกลับนี้ช่วยให้ OpenThread แจ้งแอปพลิเคชันของข้อความ UDP ที่ได้รับได้
otUdpReceiver typedef
struct otUdpReceiver
แสดงตัวรับ UDP
otUdpSocket typedef
struct otUdpSocket
แสดงซ็อกเก็ต UDP

ฟังก์ชัน

otUdpAddReceiver(otInstance *aInstance, otUdpReceiver *aUdpReceiver)
เพิ่มตัวรับ UDP
otUdpBind(otInstance *aInstance, otUdpSocket *aSocket, const otSockAddr *aSockName, otNetifIdentifier aNetif)
เชื่อมโยงซ็อกเก็ต UDP/IPv6
otUdpClose(otInstance *aInstance, otUdpSocket *aSocket)
ปิดซ็อกเก็ต UDP/IPv6
otUdpConnect(otInstance *aInstance, otUdpSocket *aSocket, const otSockAddr *aSockName)
เชื่อมต่อซ็อกเก็ต UDP/IPv6
otUdpGetSockets(otInstance *aInstance)
รับส่วนหัวของรายการซ็อกเก็ต UDP ที่ลิงก์
otUdpIsOpen(otInstance *aInstance, const otUdpSocket *aSocket)
bool
ตรวจสอบว่าซ็อกเก็ต UDP เปิดอยู่หรือไม่
otUdpNewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
จัดสรรบัฟเฟอร์ข้อความใหม่สำหรับการส่งข้อความ UDP
otUdpOpen(otInstance *aInstance, otUdpSocket *aSocket, otUdpReceive aCallback, void *aContext)
เปิดซ็อกเก็ต UDP/IPv6
otUdpRemoveReceiver(otInstance *aInstance, otUdpReceiver *aUdpReceiver)
นำตัวรับ UDP ออก
otUdpSend(otInstance *aInstance, otUdpSocket *aSocket, otMessage *aMessage, const otMessageInfo *aMessageInfo)
ส่งข้อความ UDP/IPv6
otUdpSendDatagram(otInstance *aInstance, otMessage *aMessage, otMessageInfo *aMessageInfo)
ส่งข้อความ UDP โดยไม่มีซ็อกเก็ต

โครงสร้าง

otUdpReceiver

แสดงตัวรับ UDP

otUdpSocket

แสดงซ็อกเก็ต UDP

การแจกแจง

otNetifIdentifier

 otNetifIdentifier

กำหนดตัวระบุอินเทอร์เฟซเครือข่าย OpenThread

พร็อพเพอร์ตี้
OT_NETIF_BACKBONE

อินเทอร์เฟซ Backbone

OT_NETIF_THREAD

อินเทอร์เฟซของเทรด

OT_NETIF_UNSPECIFIED

อินเทอร์เฟซเครือข่ายที่ไม่ระบุ

Typedef

otNetifIdentifier

enum otNetifIdentifier otNetifIdentifier

กำหนดตัวระบุอินเทอร์เฟซเครือข่าย OpenThread

otUdpHandler

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

โค้ดเรียกกลับนี้ช่วยให้ OpenThread สามารถระบุเครื่องจัดการที่เฉพาะเจาะจงสำหรับข้อความ UDP บางรายการ

รายละเอียด
แสดงผลค่า
true
ผู้รับนี้จะเป็นผู้จัดการข้อความและไม่ควรประมวลผลเพิ่มเติม
false
ผู้รับนี้ไม่ได้จัดการข้อความ

otUdpReceive

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

โค้ดเรียกกลับนี้ช่วยให้ OpenThread แจ้งแอปพลิเคชันของข้อความ UDP ที่ได้รับได้

otUdpReceiver

struct otUdpReceiver otUdpReceiver

แสดงตัวรับ UDP

otUdpSocket

struct otUdpSocket otUdpSocket

แสดงซ็อกเก็ต UDP

ฟังก์ชัน

otUdpAddReceiver

otError otUdpAddReceiver(
  otInstance *aInstance,
  otUdpReceiver *aUdpReceiver
)

เพิ่มตัวรับ UDP

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aUdpReceiver
ตัวชี้ไปยังเครื่องรับ UDP
แสดงผลค่า
OT_ERROR_NONE
เพิ่มผู้รับเรียบร้อยแล้ว
OT_ERROR_ALREADY
เพิ่มตัวรับ UDP แล้ว

otUdpBind

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

เชื่อมโยงซ็อกเก็ต UDP/IPv6

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aSocket
ตัวชี้ไปยังโครงสร้างซ็อกเก็ต UDP
[in] aSockName
ตัวชี้ไปยังโครงสร้างที่อยู่ของซ็อกเก็ต IPv6
[in] aNetif
อินเทอร์เฟซเครือข่ายที่จะเชื่อมโยงกับ
แสดงผลค่า
OT_ERROR_NONE
การดำเนินการเชื่อมโยงสำเร็จ
OT_ERROR_FAILED
เชื่อมโยงซ็อกเก็ต UDP ไม่สำเร็จ

otUdpClose

otError otUdpClose(
  otInstance *aInstance,
  otUdpSocket *aSocket
)

ปิดซ็อกเก็ต UDP/IPv6

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aSocket
ตัวชี้ไปยังโครงสร้างซ็อกเก็ต UDP
แสดงผลค่า
OT_ERROR_NONE
ปิดซ็อกเก็ตเรียบร้อยแล้ว
OT_ERROR_FAILED
ปิดซ็อกเก็ต UDP ไม่สำเร็จ

otUdpConnect

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

เชื่อมต่อซ็อกเก็ต UDP/IPv6

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aSocket
ตัวชี้ไปยังโครงสร้างซ็อกเก็ต UDP
[in] aSockName
ตัวชี้ไปยังโครงสร้างที่อยู่ของซ็อกเก็ต IPv6
แสดงผลค่า
OT_ERROR_NONE
เชื่อมต่อสำเร็จ
OT_ERROR_FAILED
เชื่อมต่อซ็อกเก็ต UDP ไม่สำเร็จ

otUdpGetSockets

otUdpSocket * otUdpGetSockets(
  otInstance *aInstance
)

รับส่วนหัวของรายการซ็อกเก็ต UDP ที่ลิงก์

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ตัวชี้ไปยังส่วนหัวของรายการที่เชื่อมโยงกับซ็อกเก็ต UDP

otUdpIsOpen

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

ตรวจสอบว่าซ็อกเก็ต UDP เปิดอยู่หรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aSocket
ตัวชี้ไปยังโครงสร้างซ็อกเก็ต UDP
การส่งคืน
ซ็อกเก็ต UDP เปิดอยู่หรือไม่

otUdpNewMessage

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

จัดสรรบัฟเฟอร์ข้อความใหม่สำหรับการส่งข้อความ UDP

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aSettings
ตัวชี้ไปยังการตั้งค่าข้อความหรือ NULL เพื่อใช้การตั้งค่าเริ่มต้น
การส่งคืน
ตัวชี้ไปยังบัฟเฟอร์ข้อความหรือค่า NULL หากไม่มีบัฟเฟอร์ข้อความหรือพารามิเตอร์ไม่ถูกต้อง
ดูเพิ่มเติม:
otMessageFree

otUdpOpen

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

เปิดซ็อกเก็ต UDP/IPv6

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aSocket
ตัวชี้ไปยังโครงสร้างซ็อกเก็ต UDP
[in] aCallback
ตัวชี้ไปยังฟังก์ชันเรียกกลับของแอปพลิเคชัน
[in] aContext
ตัวชี้ไปยังบริบทเฉพาะแอปพลิเคชัน
แสดงผลค่า
OT_ERROR_NONE
เปิดซ็อกเก็ตเรียบร้อยแล้ว
OT_ERROR_FAILED
เปิดซ็อกเก็ตไม่สำเร็จ

otUdpRemoveReceiver

otError otUdpRemoveReceiver(
  otInstance *aInstance,
  otUdpReceiver *aUdpReceiver
)

นำตัวรับ UDP ออก

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aUdpReceiver
ตัวชี้ไปยังเครื่องรับ UDP
แสดงผลค่า
OT_ERROR_NONE
นำผู้รับออกแล้ว
OT_ERROR_NOT_FOUND
ไม่ได้เพิ่มตัวรับ UDP

otUdpSend

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

ส่งข้อความ UDP/IPv6

หากค่าผลลัพธ์คือ OT_ERROR_NONE, OpenThread จะเป็นเจ้าของ aMessage และผู้โทรไม่ควรอ้างอิง aMessage อีกต่อไป หากค่าที่แสดงผลไม่ใช่ OT_ERROR_NONE ผู้โทรจะยังคงเป็นเจ้าของ aMessage รวมถึงเพิ่มพื้นที่ว่าง aMessage หากไม่จำเป็นต้องใช้บัฟเฟอร์ข้อความอีก

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aSocket
ตัวชี้ไปยังโครงสร้างซ็อกเก็ต UDP
[in] aMessage
ตัวชี้ไปยังบัฟเฟอร์ข้อความ
[in] aMessageInfo
ตัวชี้ไปยังโครงสร้างข้อมูลข้อความ

รายละเอียด
แสดงผลค่า
OT_ERROR_NONE
กำหนดเวลาส่งข้อความเรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
ได้รับอาร์กิวเมนต์ที่ไม่ถูกต้อง
OT_ERROR_NO_BUFS
บัฟเฟอร์ไม่เพียงพอที่จะเพิ่มส่วนหัว UDP และ IPv6

otUdpSendDatagram

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

ส่งข้อความ UDP โดยไม่มีซ็อกเก็ต

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aMessage
ตัวชี้ไปยังข้อความที่ไม่มีส่วนหัว UDP
[in] aMessageInfo
ตัวชี้ไปยังข้อมูลข้อความที่เชื่อมโยงกับ aMessage
แสดงผลค่า
OT_ERROR_NONE
จัดคิวข้อความเข้าสู่อินเทอร์เฟซเอาต์พุตสำเร็จแล้ว
OT_ERROR_NO_BUFS
บัฟเฟอร์ไม่เพียงพอที่จะเพิ่มส่วนหัว IPv6
OT_ERROR_INVALID_ARGS
ได้รับอาร์กิวเมนต์ที่ไม่ถูกต้อง

แหล่งข้อมูล

หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล