OT CLI ile UDP İşlevini Test Edin

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

OpenThread, eşler arası test için bir Thread ağıyla kullanılacak UDP komutları sunar soketleri arasındaki iletişimi sağlar. cli udp bir adet örnek soket sağlar. tüm udp komutların etkileşime girdiğini gösterir.

Aşağıdaki örneklerde prizleri nasıl açıp bağlayacağınızı ve bağlayacağınızı öğretmek için ve UDP soketleri kullanılarak nasıl mesaj gönderileceğini ele alacağız.

UDP komutları

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

udp help
bind
close
connect
linksecurity
open
send
Done

open komutu

UDP iletişimini başlatmak için udp open komutunu kullanarak soketi açın. Ardından, soketi belirli bir IP adresine ve bağlantı noktasına bağlama seçeneğiniz olur.

bind komutu

Soket için open işlemi yaptıktan sonra IPv6 adresi atamak için udp bind komutu çalıştırabilirsiniz hem de açık yuvaya bir bağlantı noktası ekleyin. Bu, soketi iletişim için bağlar. Bir IPv6 adresi ve bağlantı noktası, yuvaya ad verme olarak da adlandırılır. Doğrudan bind, prizi (udp connect) bağlayın veya udp send komutu, yuvayı geçici bir bağlantı noktasına bağlar.

connect komutu

Örnek soketi 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 verebilirsiniz. Priz zaten bağlı değil. udp connect komutunun yayınlanması soketi de bağlar.

send komutu

udp send komutu, örnek yuvayı kullanarak bir hedefe mesaj gönderir Bunun için IP adresi ve UDP bağlantı noktası komut değişkenleriyle belirtilebilir. IP adresi ve bağlantı noktası udp send komutuyla gönderilen mesaj, örnek yuva kullanılarak gönderilir. udp connect komutunda belirtilen hedefe yönlendirir. udp send komutunun yayınlanması, yuvayı geçici bir bağlantı noktasına bağlar .

close komutu

Aşağıdaki durumlarda yuvayı kapatmak için udp close komutunu kullanmanız önerilir: sokete gerek kalmaz.

linksecurity komutu

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

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

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

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

    udp bind :: 1234
    Done
    

    :: kullanımı, bind cihazının belirtilmemiş IPv6 adresini kullanması gerektiğini belirtir. Böylece UDP/IPv6 yığınının, bağlayıcı IPv6 adresini atamasını sağlayabilirsiniz. Tam ağ arayüzüne bağlama gibi udp bind ile kullanılabilen seçenekler udp bind öğesine bakın.

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

udp open
   Done
   

  1. Düğüm 2'de, Düğüm 1'e basit bir ileti 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, Düğüm 2'nin sokete bağlayın. Bunun nedeni, Düğüm 2 yöneticisinin Hangi IP adreslerinin ve bağlantı noktalarının kullanıldığına bakmadan Düğüm 1'e bir ileti olarak ayarlayın. Bu senaryoda soket rastgele bir IP adresi ve bağlantı noktası seçer.

    udp send ile ilgili tüm seçenekler için şuraya bakın: udp send.

  2. Düğüm 1, Düğüm 2'den gelen iletinin alındığını onaylar:

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

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

Bu örnek bir öncekine benziyor ancak işin esnekliğini ve UDP soketi gibi vardır. Bu yöntemle ilk olarak prizi eş IP adresini ve bağlantı noktasını belirtmeniz gerekmez. her udp send yaptığınızda.

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

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

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

    udp open
    Done
    
  4. Düğüm 2'de, Düğüm 1 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 şuraya bakın: udp Connect

  5. Düğüm 2'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 değerlerini belirtin.

    udp send hello
    Done
    

    udp send komutu, ip ve port belirtilmediğinde ip ve port değerlerini kullanır udp connect komutunda belirtilen tüm değerleri içerir.