OpenThread มีคำสั่ง UDP ที่ใช้กับเครือข่ายเทรดเพื่อทดสอบเพียร์ทูเพียร์
การสื่อสารระหว่างซ็อกเก็ต UDP cli udp
ให้ตัวอย่างซ็อกเก็ต 1 รายการที่มี
ซึ่งคำสั่งทั้ง udp
จะทำงานโต้ตอบกัน
ตัวอย่างด้านล่างแสดงวิธีเปิดและเชื่อมโยงซ็อกเก็ต วิธีการ เชื่อมต่อซ็อกเก็ตและวิธีส่งข้อความโดยใช้ซ็อกเก็ต UDP
คำสั่ง UDP
สำหรับรายการคำสั่ง udp
ให้พิมพ์ help
:
udp help
bind
close
connect
linksecurity
open
send
Done
คำสั่ง open
ใช้คำสั่ง udp open
เพื่อเปิดซ็อกเก็ตเพื่อเริ่มการสื่อสารด้วย UDP
จากนั้นคุณจะมีตัวเลือกในการเชื่อมโยงซ็อกเก็ตกับที่อยู่ IP และพอร์ตเฉพาะ
คำสั่ง bind
หลังจากopen
ซ็อกเก็ตแล้ว คุณสามารถเรียกใช้คำสั่ง udp bind
เพื่อกำหนดที่อยู่ IPv6 ได้
และพอร์ตไปยังเต้ารับที่ว่างอยู่ วิธีนี้จะช่วยยึดช่องสำหรับการสื่อสารเข้าด้วยกัน การกำหนด
ที่อยู่และพอร์ต IPv6 เรียกอีกอย่างว่าซ็อกเก็ต หากคุณไม่
bind
เต้ารับ, เชื่อมต่อเต้ารับ (udp connect
) หรือใช้ใน
คำสั่ง udp send
จะเชื่อมโยงซ็อกเก็ตกับพอร์ตชั่วคราว
คำสั่ง connect
คุณใช้คำสั่ง udp connect
เพื่อเชื่อมต่อซ็อกเก็ตตัวอย่างกับที่อยู่ซ็อกเก็ตกับเพียร์ได้
จากนั้นคุณออกคำสั่ง udp send
เพื่อส่งข้อความไปยังแอปเทียบเท่าได้ หากซ็อกเก็ต
ไม่ได้เชื่อมโยงอยู่แล้ว การออกคำสั่ง udp connect
จะเชื่อมโยงซ็อกเก็ตด้วย
คำสั่ง send
คำสั่ง udp send
จะส่งข้อความโดยใช้ซ็อกเก็ตตัวอย่างไปยังปลายทาง
ซึ่งสามารถระบุที่อยู่ IP และพอร์ต UDP ด้วยตัวแปรคำสั่ง
หากไม่มีการระบุที่อยู่ IP และพอร์ตใน
คำสั่ง udp send
ระบบจะส่งข้อความโดยใช้ซ็อกเก็ตตัวอย่าง
ไปยังปลายทางที่ระบุไว้ในคำสั่ง udp connect
การออกคำสั่ง udp send
จะเชื่อมโยงซ็อกเก็ตกับพอร์ตชั่วคราว
หากยังไม่ได้ผูกซ็อกเก็ต
คำสั่ง close
ขอแนะนำให้คุณใช้คำสั่ง udp close
เพื่อปิดซ็อกเก็ตเมื่อ
ก็ไม่ต้องใช้ซ็อกเก็ตแล้ว
คำสั่ง linksecurity
คุณใช้คําสั่ง udp linksecurity
เพื่อเปิดหรือปิดใช้การรักษาความปลอดภัยเลเยอร์ลิงก์ข้อมูลสําหรับข้อความได้
ส่งข้อความระหว่าง 2 โหนด
เปิดซ็อกเก็ต UDP ในโหนด 1
udp open
Doneเชื่อมโยงซ็อกเก็ตในโหนด 1
udp bind :: 1234
Doneการใช้
::
หมายความว่าbind
ควรใช้ที่อยู่ IPv6 ที่ไม่ระบุ จึงทำให้สแต็ก UDP/IPv6 กำหนดที่อยู่ IPv6 ที่เชื่อมโยงให้ สำหรับเวอร์ชันสมบูรณ์ ตัวเลือกกับudp bind
เช่น การเชื่อมโยงกับอินเทอร์เฟซเครือข่าย ดูการเชื่อมโยง udp
1 ในโหนด 2 ให้เปิดซ็อกเก็ต UDP
udp open
Done
ส่งข้อความง่ายๆ ไปยังโหนด 1 ในโหนด 2
udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
Doneคำสั่งนี้ถือว่าโหนด 2 ค้นพบที่อยู่ของโหนด 1 แล้ว นอกจากนี้ ในตัวอย่างนี้ ผู้ดูแลระบบของโหนด 2 ได้เลือกที่จะไม่ เชื่อมซ็อกเก็ต เนื่องจากผู้ดูแลระบบโหนด 2 ต้องการส่ง ข้อความไปยังโหนด 1 โดยไม่สนว่าจะใช้ที่อยู่ IP และพอร์ตใด เป็นแหล่งที่มาของโหนด 2 ในกรณีนี้ ซ็อกเก็ตจะเลือกที่อยู่ IP และพอร์ตแบบสุ่ม
สำหรับตัวเลือกทั้งหมดเกี่ยวกับ
udp send
โปรดดูที่ udp sendโหนด 1 ยืนยันการได้รับข้อความจากโหนด 2:
5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
เชื่อมต่อซ็อกเก็ตกับที่อยู่ซ็อกเก็ต จากนั้นส่งข้อความระหว่าง 2 โหนด
ตัวอย่างนี้คล้ายคลึงกับตัวอย่างก่อนหน้านี้ แต่แสดงให้เห็นถึงความยืดหยุ่นบางอย่าง
ที่คุณมีเมื่อใช้ซ็อกเก็ต UDP โดยให้เชื่อมต่อซ็อกเก็ตกับ
คุณไม่จำเป็นต้องระบุที่อยู่ IP และพอร์ตเพียร์
ทุกครั้งที่คุณทำ udp send
เปิดซ็อกเก็ต UDP ในโหนด 1
udp open
Doneเชื่อมโยงซ็อกเก็ตในโหนด 1
udp bind :: 1234
Doneเปิดซ็อกเก็ต UDP ในโหนด 2
udp open
Doneในโหนด 2 ให้ใช้คำสั่ง
udp connect
เพื่อเปิดการสื่อสารไปยังโหนด 1udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
Doneสำหรับตัวเลือกทั้งหมดเกี่ยวกับ
udp connect
โปรดดูที่ udp Connectในโหนด 2 ให้ใช้คำสั่ง
udp send
เพื่อส่งข้อความไปยังโหนด 1 แต่ไม่ส่ง ระบุip
และport
ในไวยากรณ์คำสั่งudp send
udp send hello
Doneหากไม่ระบุ
ip
และport
คำสั่งudp send
จะใช้ip
และport
ซึ่งระบุไว้ในคำสั่งudp connect