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 โหนด
บนโหนด 1 ให้เปิดซ็อกเก็ต UDP
udp open
Doneผูกซ็อกเก็ตในโหนด 1
udp bind :: 1234
Doneการใช้
::
หมายความว่าbind
ควรใช้ที่อยู่ IPv6 ที่ไม่ระบุ ดังนั้นสแต็ก UDP/IPv6 จะกําหนดที่อยู่ IPv6 ที่มีผลผูกพัน สำหรับตัวเลือกที่สมบูรณ์กับudp bind
เช่น การเชื่อมโยงกับอินเทอร์เฟซเครือข่าย โปรดดู udp bind
1 บนโหนด 2 ให้เปิดซ็อกเก็ต UDP
udp open
Done
บนโหนด 2 ส่งข้อความง่ายๆ ไปยังโหนด 1
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
บนโหนด 1 ให้เปิดซ็อกเก็ต UDP
udp open
Doneผูกซ็อกเก็ตในโหนด 1
udp bind :: 1234
Doneบนโหนด 2 ให้เปิดซ็อกเก็ต UDP
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