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