В этом примере запишите и считайте двоичные данные с объектом 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")
udpport
| echoudp
| read
| write