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