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