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, значения возвращены как дважды. Для 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 как 0Inf, или NaN. Если count больше NumBytesAvailable или NumDatagramsAvailable свойство udpport объект, затем функция ожидает, пока конкретное количество значений или дейтаграмм не читается или пока тайм-аут не происходит.

    Пример: 16

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

    Тип данных MATLAB для каждого значения в виде строки или вектора символов. datatype задает количество битов, чтобы читать для каждого значения и интерпретации тех битов как тип данных MATLAB. Позволенными значениями является "int8"int16int32int64uint8uint16uint32uint64'double'единственный'char', и "string".

    Пример: "uint16"

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

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

    свернуть все

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

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

    Функции

    Введенный в R2020b