OT CLI ile UDP İşlevini Test Edin

Kaynağı GitHub'da görüntüleyin

OpenThread, UDP soketleri arasında eşler arası iletişimi test etmek için bir Thread ağıyla kullanılmak üzere UDP komutları sunar. cli udp, tüm udp komutlarının etkileşimde bulunduğu bir örnek yuva sağlar.

Aşağıdaki örneklerde yuvaları nasıl açıp bağlayabileceğiniz, soketin nasıl bağlanacağı ve UDP soketlerini kullanarak nasıl mesaj gönderileceği gösterilmektedir.

UDP komutları

udp komutları listesi için help yazın:

udp help
bind
close
connect
linksecurity
open
send
Done

open komutu

UDP iletişimini başlatmak üzere yuvayı açmak için udp open komutunu kullanın. Ardından, soketi belirli bir IP adresine ve bağlantı noktasına bağlama seçeneğiniz vardır.

bind komutu

Yuvaya open işlemi yaptıktan sonra, açık yuvaya bir IPv6 adresi ve bir bağlantı noktası atamak için udp bind komutu çalıştırabilirsiniz. Bu, iletişim için yuvayı bağlar. IPv6 adresi ve bağlantı noktasının atanması, yuvayı adlandırma olarak da adlandırılır. Yuvayı doğrudan bind yapmazsanız soketi (udp connect) bağlamak veya bir udp send komutunda kullanmak, yuvayı geçici bir bağlantı noktasına bağlar.

connect komutu

Örnek yuvayı bir eş yuva adresine bağlamak için udp connect komutu kullanılabilir. Ardından, eşe mesaj göndermek için bir udp send komutu yayınlayabilirsiniz. Yuva önceden bağlı değilse udp connect komutunun verilmesi, yuvayı da bağlar.

send komutu

udp send komutu, örnek yuvayı kullanarak IP adresi ve UDP bağlantı noktasının komut değişkenleriyle belirtilebileceği bir hedefe mesaj gönderir. udp send komutunda IP adresi ve bağlantı noktası belirtilmemişse mesaj, örnek yuva kullanılarak udp connect komutunda belirtilen hedefe gönderilir. udp send komutunun verilmesi, yuvaya halihazırda bağlanmamışsa yuvayı geçici bir bağlantı noktasına bağlar.

close komutu

Artık gerekli olmayan yuvayı kapatmak için udp close komutunu kullanmanız önerilir.

linksecurity komutu

udp linksecurity komutu, mesajlarda veri bağlantısı katmanı güvenliğini etkinleştirmek veya devre dışı bırakmak için kullanılabilir.

İki düğüm arasında mesaj gönderme

  1. 1. Düğüm'de UDP soketini açın.

    udp open
    Done
    
  2. 1. Düğüm'de soketi bağlayın.

    udp bind :: 1234
    Done
    

    :: kullanımı, bind öğesinin belirtilmemiş IPv6 adresini kullanması gerektiğini, dolayısıyla UDP/IPv6 yığınının bağlayıcı IPv6 adresini ataması gerektiğini belirtir. Ağ arayüzüne bağlama gibi udp bind ile ilgili tüm seçenekler için udp bind bölümüne bakın.

1 2. Düğümde, UDP soketini açın.

udp open
   Done
   

  1. 2. Düğüm'de, 1. Düğüme basit bir mesaj gönderin.

    udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
    Done
    

    Bu komut, Düğüm 2'nin Düğüm 1'in adresini zaten keşfettiğini varsayar. Ayrıca bu örnekte Düğüm 2'nin yöneticisi, yuvayı bağlamamayı seçmiştir. Bunun nedeni, Düğüm 2 yöneticisinin, Düğüm 2 kaynağı olarak kullanılan IP adresleri ve bağlantı noktalarını dikkate almadan Düğüm 1'e mesaj göndermek istemesidir. Bu senaryoda yuva bir IP adresi ve bağlantı noktası seçer.

    udp send ile ilgili tüm seçenekler için udp send bölümüne bakın.

  2. 1. düğüm, 2. düğümden iletinin alındığını onaylar:

    5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
    

Yuvayı eş yuva adresine bağlayın, ardından iki düğüm arasında bir mesaj gönderin

Bu örnek, bir öncekine benzer ancak UDP soketlerini kullanırken sahip olduğunuz esnekliği göstermektedir. Bu yöntemle önce soketi eş yuva adresine bağlarsınız, ardından her udp send işleminizde eş IP adresini ve bağlantı noktasını belirtmeniz gerekmez.

  1. 1. Düğüm'de UDP soketini açın.

    udp open
    Done
    
  2. 1. Düğüm'de soketi bağlayın.

    udp bind :: 1234
    Done
    
  3. 2. Düğümde UDP soketini açın.

    udp open
    Done
    
  4. 2. Düğüm'de, 1. Düğüm ile iletişimi açmak için udp connect komutunu kullanın.

    udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
    Done
    

    udp connect ile ilgili tüm seçenekler için udp connect'e bakın

  5. 2. Düğüm'de, Düğüm 1'e mesaj göndermek için udp send komutunu kullanın ancak udp send komut söz diziminde ip ve port belirtmeyin.

    udp send hello
    Done
    

    ip ve port belirtilmeden udp send komutu, udp connect komutunda belirtilen ip ve port değerlerini kullanır.