OpenThread מציעה פקודות UDP לשימוש עם רשת בפרוטוקול Thread כדי לבצע בדיקות מקצה לקצה (P2P)
תקשורת בין שקעי UDP. ב-cli udp יש שקע לדוגמה אחד עם
שכל פקודות udp נמצאות באינטראקציה.
בדוגמאות הבאות מתואר איך לפתוח ולחבר שקעים, ואיך חיבור של השקע ואיך לשלוח הודעות באמצעות שקעי UDP.
פקודות UDP
לרשימה של פקודות udp, מקלידים help:
udp help
bind
close
connect
linksecurity
open
send
Done
הפקודה open
כדי להתחיל תקשורת UDP, משתמשים בפקודה udp open כדי לפתוח את השקע.
לאחר מכן תהיה לכם אפשרות לקשר את השקע לכתובת IP וליציאה ספציפיות.
הפקודה bind
אחרי open של השקע, אפשר להריץ פקודת udp bind כדי להקצות כתובת IPv6
ויציאה לשקע הפתוח. השקע מחבר את השקע לתקשורת. הקצאת
הכתובת והיציאה של IPv6 נקראות גם מתן שם לשקע. אם לא
bind את השקע, חיבור השקע (udp connect) או שימוש בו
פקודת udp send מקשרת את השקע ליציאה זמנית.
הפקודה connect
אפשר להשתמש בפקודה udp connect כדי לחבר את השקע לדוגמה לכתובת שקע קשורה.
לאחר מכן אפשר לבצע פקודת udp send כדי לשלוח הודעה לאפליקציה להשוואה. אם השקע
עדיין לא מחויב, הנפקת הפקודה udp connect גם מחייבת את השקע.
הפקודה send
פקודת udp send שולחת הודעה ליעד באמצעות ה-socket לדוגמה
שאת כתובת ה-IP ואת יציאת ה-UDP שלהם אפשר לציין באמצעות משתני הפקודה.
אם כתובת ה-IP והיציאה לא צוינו
הפקודה udp send, ההודעה נשלחת באמצעות השקע לדוגמה
ליעד שצוין בפקודה udp connect.
כשמבצעים את הפקודה udp send, השקע מקושר ליציאה זמנית
אם השקע עדיין לא מחובר.
הפקודה close
מומלץ להשתמש בפקודה udp close כדי לסגור את השקע כאשר
אין יותר צורך בשקע.
הפקודה linksecurity
אפשר להשתמש בפקודה udp linksecurity כדי להפעיל או להשבית אבטחת שכבת של קישור נתונים להודעות.
שליחת הודעה בין שני צמתים
בצומת 1, פותחים את שקע ה-UDP.
udp openDoneמצמידים את השקע בצומת 1.
udp bind :: 1234Doneהשימוש ב-
::מציין שה-bindצריך להשתמש בכתובת IPv6 שלא צוינה, כך שסטאק ה-UDP/IPv6 יקצה את כתובת ה-IPv6 המקושרת. לסיום אפשרויות עםudp bind, כמו קישור לממשק רשת, פרטים נוספים זמינים בקישור udp.
1 בצומת 2, פותחים את שקע ה-UDP.
udp open
Done
בצומת 2, שולחים הודעה פשוטה לצומת 1.
udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 helloDoneהפקודה הזו יוצאת מנקודת הנחה שצומת 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
אפשר לחבר את השקע לכתובת ה-socket של האפליקציות להשוואה, ואז לשלוח הודעה בין שני צמתים
הדוגמה הזו דומה לדוגמה הקודמת, אבל היא ממחישה חלק מהגמישות.
שמשתמשים בשקעי UDP. בשיטה הזו, קודם מחברים את השקע
אין צורך לציין את כתובת ה-IP והיציאה של הרשת השכנה
בכל פעם שאתה עושה udp send.
בצומת 1, פותחים את שקע ה-UDP.
udp openDoneמצמידים את השקע בצומת 1.
udp bind :: 1234Doneבצומת 2, פותחים את שקע ה-UDP.
udp openDoneבצומת 2, משתמשים בפקודה
udp connectכדי לפתוח תקשורת לצומת 1.udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234Doneכדי לראות את האפשרויות המלאות עם
udp connect, אפשר לעיין במאמר udp Connectבצומת 2, משתמשים בפקודה
udp sendכדי לשלוח הודעה לצומת 1, אבל לא לציין אתipואתportבתחביר של הפקודהudp send.udp send helloDoneאם לא מציינים את הפרמטר
ipו-port, הפקודהudp sendמשתמשת במאפייניםipו-portשצוינו בפקודהudp connect.