В этом примере показано, как отправить и получить многоадресные данные с помощью udpport.
Создайте udpport образец для отправки многоадресных данных.
uSender = udpport()
uSender =
UDPPort with properties:
IPAddressVersion: "IPV4"
LocalHost: "0.0.0.0"
LocalPort: 62055
NumBytesAvailable: 0
Show all properties, functions
Создайте несколько udpport образцы для приема этих многоадресных данных. Убедитесь, что все эти udpport образцы привязываются к тому же LocalPort с EnablePortSharing установите значение true. В этом примере udpport образцы uReceiver1 и uReceiver2 связаны с LocalPort 3030. uReceiver1 является типом датаграммы udpport образец и uReceiver2 является типом байта udpport образец.
uReceiver1 = udpport("datagram", "LocalPort", 3030, "EnablePortSharing", true)
uReceiver1 =
UDPPort with properties:
IPAddressVersion: "IPV4"
LocalHost: "0.0.0.0"
LocalPort: 3030
NumDatagramsAvailable: 0
Show all properties, functions
uReceiver2 = udpport("LocalPort", 3030, "EnablePortSharing", true)
uReceiver2 =
UDPPort with properties:
IPAddressVersion: "IPV4"
LocalHost: "0.0.0.0"
LocalPort: 3030
NumBytesAvailable: 0
Show all properties, functions
Можно также создать отправителя и приемники на различных образцах MATLAB для связи между несколькими образцами MATLAB на одном компьютере.
Установите многоадресную рассылку для udpport многоадресные приемники, использующие configureMulticast функция. Подпишитесь на группу адресов многоадресной рассылки «226.0.0.1». Когда uSender отправляет данные в эту группу адресов многоадресной рассылки, каждую udpport образец, подписанный на этот адрес, получает многоадресные данные.
configureMulticast(uReceiver1, "226.0.0.1"); configureMulticast(uReceiver2, "226.0.0.1");
Это отражается на MulticastGroup и EnableMulticast свойства.
uReceiver1.MulticastGroup
ans = "226.0.0.1"
uReceiver1.EnableMulticast
ans = logical
1
uReceiver2.MulticastGroup
ans = "226.0.0.1"
uReceiver2.EnableMulticast
ans = logical
1
The uSender образец» отправляется как строковый тип данных в группу адресов многоадресной рассылки «226.0.0.1» и порт 3030.
write(uSender,"hello","string","226.0.0.1",3030);
Проверьте, что приемники многоадресной передачи uReceiver1 и uReceiver2 получите данные. Считайте эти данные в MATLAB.
Убедитесь, что приемники получили многоадресные пакеты. uReceiver1 будучи типом датаграммы udpport образец получает данные как дейтаграмму. uReceiver2 будучи типом байта udpport образец получает данные в виде необработанных байтов.
uReceiver1Count = uReceiver1.NumDatagramsAvailable
uReceiver1Count = 1
uReceiver2Count = uReceiver2.NumBytesAvailable
uReceiver2Count = 5
Считайте данные от первого приемника как строку, задавая количество считываемых датаграмм.
data1 = read(uReceiver1,uReceiver1Count,"string");data1 является udpport.datagram.Datagram объект. Просмотр полученных данных
data1.Data
ans = "hello"
Считайте данные от второго приемника как строку, указав количество байтов данных для чтения.
data2 = read(uReceiver2,uReceiver2Count,"string")data2 = "hello"
Отписаться от группы адресов многоадресной рассылки.
configureMulticast(uReceiver1, "off"); configureMulticast(uReceiver2, "off");
Очистить udpport образцы.
clear uReceiver1 clear uReceiver2 clear uSender