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