OpenThread دستورات UDP را برای استفاده با شبکه Thread برای آزمایش ارتباط همتا به همتا بین سوکت های 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
با استفاده از سوکت مثال پیامی را به مقصدی که آدرس IP و پورت UDP آن را می توان با متغیرهای فرمان مشخص کرد ارسال می کند. اگر آدرس IP و پورت در دستور udp send
مشخص نشده باشد، پیام با استفاده از سوکت مثال به مقصدی که در دستور udp connect
مشخص شده ارسال میشود. صدور فرمان udp send
سوکت را به یک پورت زودگذر متصل میکند، اگر سوکت قبلاً متصل نشده باشد.
دستور close
توصیه می شود زمانی که دیگر به سوکت نیازی ندارید از دستور udp close
برای بستن سوکت استفاده کنید.
فرمان linksecurity
از دستور udp linksecurity
می توان برای فعال یا غیرفعال کردن امنیت لایه پیوند داده برای پیام ها استفاده کرد.
ارسال پیام بین دو گره
در Node 1، سوکت UDP را باز کنید.
udp open
Doneدر گره 1، سوکت را ببندید.
udp bind :: 1234
Doneاستفاده از
::
نشان می دهد کهbind
باید از آدرس IPv6 نامشخص استفاده کند، بنابراین پشته UDP/IPv6 آدرس IPv6 اتصال را اختصاص می دهد. برای گزینه های کامل باudp bind
، مانند اتصال به یک رابط شبکه، به udp bind مراجعه کنید.
1 در Node 2، سوکت UDP را باز کنید.
udp open
Done
در Node 2، یک پیام ساده به Node 1 ارسال کنید.
udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
Doneاین دستور فرض میکند که Node 2 قبلاً آدرس Node 1 را کشف کرده است. علاوه بر این، در این مثال، مدیر Node 2 انتخاب کرده است که سوکت را متصل نکند. این به این دلیل است که مدیر Node 2 می خواهد پیامی را به Node 1 ارسال کند بدون اینکه اهمیتی دهد که کدام یک از آدرس های IP و پورت های آن به عنوان منبع Node 2 استفاده می شود. سوکت در این سناریو یک آدرس IP و پورت را به صورت تصادفی انتخاب می کند.
برای گزینه های کامل با
udp send
به udp send مراجعه کنید.Node 1 دریافت پیام از Node 2 را تایید می کند:
5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
سوکت را به آدرس سوکت همتا وصل کنید، سپس یک پیام بین دو گره ارسال کنید
این مثال مشابه نمونه قبلی است، اما برخی از انعطافپذیریهای شما را در استفاده از سوکتهای UDP نشان میدهد. با این روش ابتدا سوکت را به آدرس سوکت همتا متصل می کنید، سپس نیازی به تعیین آدرس IP و پورت همتا در هر بار udp send
ندارید.
در Node 1، سوکت UDP را باز کنید.
udp open
Doneدر گره 1، سوکت را ببندید.
udp bind :: 1234
Doneدر Node 2، سوکت UDP را باز کنید.
udp open
Doneدر Node 2، از دستور
udp connect
برای باز کردن ارتباط با Node 1 استفاده کنید.udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
Doneبرای گزینه های کامل با
udp connect
، به udp connect مراجعه کنیددر Node 2، از دستور
udp send
برای ارسال پیام به Node 1 استفاده کنید، اما در دستورudp send
ip
وport
مشخص نکنید.udp send hello
Doneبا مشخص نکردن
ip
وport
، دستورudp send
ازip
وport
استفاده می کند که در دستورudp connect
مشخص شده است.