Широковещательно передайте пользовательские дейтаграммные пакеты данных о протоколе

В этом примере показано, как отправить и получить пакеты широковещательной дейтаграммы с помощью udpport функция.

Создайте udpport Вещательную компанию

Создайте дейтаграммный тип udpport экземпляр вещательной компании

uBroadcaster = udpport("datagram")
uBroadcaster = 
  UDPPort with properties:

         IPAddressVersion: "IPV4"
                LocalHost: "0.0.0.0"
                LocalPort: 59646
    NumDatagramsAvailable: 0

  Show all properties, functions

Установите EnableBroadcast свойство допускать широковещательную передачу.

uBroadcaster.EnableBroadcast = true;

Создайте udpport Приемники

Создайте udpport экземпляры, которые получают широковещательные данные. Эти приемники связаны с LocalPort 2020 с EnablePortSharing включенный так, чтобы несколько udpport объекты могут связать с тем же сокетом. uReceiver1 тип байта udpport экземпляр и uReceiver2 дейтаграммный тип udpport экземпляр.

uReceiver1 = udpport("byte","LocalPort",2020,"EnablePortSharing",true)
uReceiver1 = 
  UDPPort with properties:

     IPAddressVersion: "IPV4"
            LocalHost: "0.0.0.0"
            LocalPort: 2020
    NumBytesAvailable: 0

  Show all properties, functions

uReceiver2 = udpport("datagram", "LocalPort",2020,"EnablePortSharing",true)
uReceiver2 = 
  UDPPort with properties:

         IPAddressVersion: "IPV4"
                LocalHost: "0.0.0.0"
                LocalPort: 2020
    NumDatagramsAvailable: 0

  Show all properties, functions

Отправьте широковещательные данные

Вещательная компания отправляет данные в широковещательный адрес "192.168.255.255" и порт 2020, с которым связаны приемники. В этом примере широковещательный адрес "192.168.255.255", который определяется сетевым адресом и маской подсети. Этот адрес будет отличаться на вашем компьютере.

Запишите данные 1:5 в виде uint8 данных.

write(uBroadcaster,1:5,"uint8","192.168.255.255",2020);

Получите широковещательные данные

Теперь, когда вещательная компания отправила данные, приемники получают эти пакеты данных.

Проверьте что значение NumBytesAvailable свойство uReceiver1 5, указывая, что пять байтов данных были получены.

uReceiver1Count = uReceiver1.NumBytesAvailable
uReceiver1Count = 5

Проверьте что значение NumDatagramsAvailable свойство uReceiver2 1, указывая, что одна дейтаграмма была получена.

uReceiver2Count = uReceiver2.NumDatagramsAvailable
uReceiver2Count = 1

Считайте 5 байтов данных из uReceiver1.

data1 = read(uReceiver1,uReceiver1Count,"uint8")
data1 = 1×5

     1     2     3     4     5

Считайте 1 дейтаграмму, полученную на uReceiver2.

data2 = read(uReceiver2,uReceiver2Count,"uint8");

data2 udpport.datagram.Datagram объект. Просмотрите полученные данные.

data2.Data
ans = 1×5

     1     2     3     4     5

Очистите экземпляры

Очистите udpport вещательная компания и экземпляры приемника.

clear uBroadcaster
clear uReceiver1
clear uReceiver2