read

Считайте данные из UDP-сокета

    Описание

    пример

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

    пример

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

    Примеры

    свернуть все

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

    Считайте 5 значений uint32 данные из udpport гнездо.

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

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

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

    Поворот 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