Запись и чтение двоичных данных по UDP

В этом примере запись и чтение двоичных данных с объектом UDP.

Запись и чтение двоичных данных с использованием порта 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 типа датаграммы

Настройка и подключение к серверу

Используйте эхо-сервер, чтобы экспериментировать с основной функциональностью объектов 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")

См. также

| | |

Похожие темы