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