В этом примере показано, как отправить и получить широковещательные пакеты датаграмм с помощью 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 образцы, которые получают широковещательные данные. Эти приемники связаны с 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