UDP

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

สรุป

คําอธิบาย

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

พิมพ์ดีด

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 Socket ที่ลิงก์
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

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

พิมพ์ดีด

otNetifIdentifier

enum otNetifIdentifier otNetifIdentifier

การแจงนับนี้จะระบุตัวระบุอินเทอร์เฟซเครือข่าย OpenThread

otUdpHandler

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

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

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

รับ UUppReceive

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

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

OTUdpReceiver

struct otUdpReceiver otUdpReceiver

โครงสร้างนี้จะแสดงตัวรับสัญญาณ UDP

ออตUSpSocket

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 ไม่สําเร็จ

ปิด UdpClose

otError otUdpClose(
  otInstance *aInstance,
  otUdpSocket *aSocket
)

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

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

OTUDConnect

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 Socket ที่ลิงก์

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

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

ทรัพยากร

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