В этом примере запишите и считайте двоичные данные с объектом UDP.
Используйте сервер эха, чтобы экспериментировать с основной функциональностью объектов UDP, не связывая с существующим устройством. Сервер эха является сервисом, который возвращается к адресу и порту отправителя, те же байты, которые это получает от отправителя.
echoudp("on",4040)Создайте тип байта udpport объект.
u = udpport
u =
UDPPort with properties:
IPAddressVersion: "IPV4"
LocalHost: "0.0.0.0"
LocalPort: 51595
NumBytesAvailable: 0
Show all properties, functions
Используйте write функционируйте, чтобы записать значениям 1:10 к серверу.
write(u,1:10,"localhost",4040)Функция приостанавливает выполнение MATLAB®, пока все данные не записаны, или тайм-аут происходит, как задано Timeout свойство udpport объект.
По умолчанию, write функционируйте пишут двоичные данные как uint8 данные. Для получения дополнительной информации об определении других типов данных, смотрите write.
Подтвердите успех операции записи путем просмотра NumBytesAvailable свойство.
u.NumBytesAvailable
ans =
10
Начиная с каждого uint8 данные составляют один байт, и десять значений были записаны, в общей сложности десять байтов доступны, чтобы быть считанными из объекта.
Начиная с udpport объект соединяется с сервером эха, данные, которые вы пишете, возвращены в объект. Считайте первые пять значений данных как uint8 данные.
data1 = read(u,5,"uint8")
data1 =
1 2 3 4 5
После того, как вы считаете данные, MATLAB удаляет их из буфера. Можно использовать ту же команду, чтобы считать следующие пять байтов данных как uint8 от буфера.
data2 = read(u,5,"uint8")
data2 =
6 7 8 9 10
Когда вы будете закончены с объектом UDP, очистите его и выключите сервер эха.
clear u echoudp("off")
Используйте сервер эха, чтобы экспериментировать с основной функциональностью объектов UDP, не связывая с существующим устройством. Сервер эха является сервисом, который возвращается к адресу и порту отправителя, те же байты, которые это получает от отправителя.
echoudp("on",4040)Создайте дейтаграммный тип udpport объект.
u = udpport("datagram")
u =
UDPPort with properties:
IPAddressVersion: "IPV4"
LocalHost: "0.0.0.0"
LocalPort: 65390
NumDatagramsAvailable: 0
Show all properties, functions
Определите максимальный номер байтов данных, которые будут написаны в дейтаграммном пакете. Это определяет количество дейтаграмм, которые будут записаны в сервер.
u.OutputDatagramSize = 10;
Используйте write функционируйте, чтобы записать значениям 1:15 к серверу.
write(u,1:15,"localhost",4040)Функция приостанавливает выполнение MATLAB, пока все данные не записаны, или тайм-аут происходит, как задано Timeout свойство udpport объект.
По умолчанию, write функционируйте пишут двоичные данные как uint8 данные. Для получения дополнительной информации об определении других типов данных, смотрите write.
Подтвердите успех операции записи путем просмотра NumDatagramsAvailable свойство.
u.NumDatagramsAvailable
ans =
2
Поскольку вы задали каждую дейтаграмму как десять байтов, и 15 байтов были записаны, в общей сложности две дейтаграммы доступны, чтобы быть считанными из объекта.
Начиная с udpport объект соединяется с сервером эха, данные, которые вы пишете, возвращены в объект. Считайте все данные как uint8 данные.
data = read(u,u.NumDatagramsAvailable,"uint8")
data =
1×2 Datagram array with properties:
Data
SenderAddress
SenderPort
Просмотрите первую дейтаграмму и ее значения.
data1 = data(1)
data1 =
Datagram with properties:
Data: [1 2 3 4 5 6 7 8 9 10]
SenderAddress: "127.0.0.1"
SenderPort: 4040
Просмотрите вторую дейтаграмму и ее значения.
data2 = data(2)
data2 =
Datagram with properties:
Data: [11 12 13 14 15]
SenderAddress: "127.0.0.1"
SenderPort: 4040
Когда вы будете закончены с объектом UDP, очистите его и выключите сервер эха.
clear u echoudp("off")
echoudp | read | udpport | write