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