exponenta event banner

Запись и чтение двоичных данных по 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")

См. также

| | |

Связанные темы