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 openDoneدر گره 1، سوکت را ببندید.
udp bind :: 1234Doneاستفاده از
::نشان می دهد که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 helloDoneاین دستور فرض میکند که 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 openDoneدر گره 1، سوکت را ببندید.
udp bind :: 1234Doneدر Node 2، سوکت UDP را باز کنید.
udp openDoneدر Node 2، از دستور
udp connectبرای باز کردن ارتباط با Node 1 استفاده کنید.udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234Doneبرای گزینه های کامل با
udp connect، به udp connect مراجعه کنیددر Node 2، از دستور
udp sendبرای ارسال پیام به Node 1 استفاده کنید، اما در دستورudp sendipوportمشخص نکنید.udp send helloDoneبا مشخص نکردن
ipوport، دستورudp sendازipوportاستفاده می کند که در دستورudp connectمشخص شده است.