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