exponenta event banner

читать

Считывание данных с разъема UDP

    Описание

    пример

    data = read(u,count) считывает указанное количество значений из udpport гнездо u, используя точность по умолчанию uint8 для интерпретации числовых данных. Для байтового типа udpport объект u, результат data - вектор строки из двойников. Для типа датаграммы udpport объект u, результат data является Datagram структура или массив структур.

    пример

    data = read(u,count,datatype) считывает из udpport гнездо u, с точностью, указанной datatype. Для числового значения datatypeзначения возвращаются как двойные. Для datatype из "char" или "string", результаты являются указанным типом.

    Примеры

    свернуть все

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

    Прочтите 5 значений uint32 данные из udpport розетка.

    u = udpport("IPV4");
    data = read(u,5,"uint32");

    Эти 5 значений содержат в общей сложности 20 байт uint32 данные на udpport розетка. В MATLAB, data представляет собой массив двойников.

    В этом примере показано, как считывать данные дейтаграмм.

    Поворот echoudp на порте 3030, затем создайте тип дейтаграммы udpport объект с OutputDatagramSize из 5.

    echoudp("on",3030);
    u = udpport("datagram","OutputDatagramSize",5);

    Отправить 20 байт uint8 данные в echoudp порт.

    write(u,1:20,"uint8","127.0.0.1",3030);

    Поскольку OutputDatagramSize устанавливается равным 5, 20 байт посылаются в виде 4 пакетов дейтаграмм, каждый из которых содержит 5 байт данных.

    Убедитесь, что от эхо-сервера получено 4 дейтаграммы.

    u.NumDatagramsAvailable
    ans =
    
         4

    Прочитайте 4 дейтаграммы, полученные от эхо-сервера.

    data = read(u,u.NumDatagramsAvailable,"uint8")
    data = 
    
      1×4 Datagram array with properties:
    
        Data
        SenderAddress
        SenderPort

    Первая дейтаграмма содержит значения 1-5 (5 байт), вторая 6-10, третья 11-15 и четвертая 16-20.

    Просмотр третьей дейтаграммы.

    data(3)
    ans = 
    
      Datagram with properties:
    
                 Data: [11 12 13 14 15]
        SenderAddress: "127.0.0.1"
           SenderPort: 3030

    Входные аргументы

    свернуть все

    Сокет UDP, указанный как udpport объект.

    Пример: u = udpport

    Типы данных: udpport object

    Количество значений или датаграмм для чтения udpport сокет, указанный как числовое значение. Невозможно указать count как 0, Inf, или NaN. Если count больше, чем NumBytesAvailable или NumDatagramsAvailable имущества udpport затем функция ожидает, пока не будет прочитано указанное количество значений или датаграмм или пока не наступит тайм-аут.

    Пример: 16

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Тип данных MATLAB для каждого значения, заданного как строковый или символьный вектор. datatype определяет количество считываемых битов для каждого значения и интерпретацию этих битов как типа данных MATLAB. Допустимые значения: "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "double", "single", "char", и "string".

    Пример: "uint16"

    Типы данных: char | string

    Выходные аргументы

    свернуть все

    Значения, считанные из udpport розетка. Для байтового типа udpport объект, результат - строка, символьный вектор или 1-by-N вектор строки двойников, где N - количество значений, указанных count. Для типа датаграммы udpport объект, результатом является Datagram структура или массив структур. Если данные не возвращены, data пуст.

    См. также

    Функции

    Представлен в R2020b