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

Смотрите также

| | |

Похожие темы