udpport

Свяжите с сокетом UDP

    Описание

    udpport объект позволяет вам выполнять тип байта и коммуникацию UDP дейтаграммного типа с помощью сокета UDP на локальном хосте.

    Создание

    Описание

    пример

    u = udpport или u = udpport("byte") создает тип байта udpport объект u, с набором версии IP-адреса к IPv4, связанному с сокетом UDP.

    u = udpport("byte",IPv) создает тип байта udpport объект с версией IP-адреса, заданной IPv, который может быть любой "IPV4" или "IPV6".

    пример

    u = udpport("datagram") создает дейтаграммный тип udpport объект u, с набором версии IP-адреса к IPv4.

    u = udpport("datagram",IPv) создает дейтаграммный тип udpport объект с версией IP-адреса, заданной IPv, который может быть любой "IPV4" или "IPV6".

    пример

    u = udpport(___,Name,Value) создает udpport объект и наборы задали аргументы пары "имя-значение" использования свойств объектов. Если вы задаете недопустимое имя свойства или значение, функция не создает объект. udpport свойствами, которые могут быть установлены аргументы пары "имя-значение" использования, является LocalHost, LocalPortТайм-аутByteOrder, OutputDatagramSize, и EnablePortSharing.

    Входные параметры

    развернуть все

    Версия IP-адреса в виде "IPV4" или "IPV6".

    Примечание

    Версия IP-адреса должна быть сопоставимой через вашу настройку. Вы не можете связаться между сокетом IPv4 и адресом IPv6, или наоборот.

    Аргументы в виде пар имя-значение

    Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

    Свойствами, которые поддерживают аргументы Name-Value, является LocalHost, LocalPortТайм-аутByteOrder, OutputDatagramSize, и EnablePortSharing. Из них, LocalHost, LocalPort, и EnablePortSharing станьте только для чтения после udpport объект создается.

    Пример: "Timeout",60

    Свойства

    развернуть все

    Свойства, характерные для байта и дейтаграммы udpport Объекты

    Это свойство доступно только для чтения.

    Тип версии для IP-адреса в виде "IPV4" или "IPV6".

    Пример: "IPV6"

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

    Это свойство доступно только для чтения.

    Локальное имя хоста или точечно-десятичный IP-адрес в виде вектора символов или строки. Если вы не задаете значение для LocalHost когда вы создаете udpport объект, значением по умолчанию является "0.0.0.0" для IPv4 или "::" для IPv6.

    Пример: "144.133.0.0"

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

    Это свойство доступно только для чтения.

    Порт локального хоста к привязке для UDP в виде числового значения от 0 до 65 535. Если вы не задаете значение для LocalPort когда вы создаете udpport объект, значение автоматически присвоено.

    Пример: 50791

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

    Последовательный порядок, в котором байты располагаются в большие численные значения в виде "little-endian" или "big-endian".

    Пример: "big-endian"

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

    Время допускало операции чтения и операции записи в секундах в виде двойного.

    Пример: 20

    Типы данных: double

    Максимальное количество байтов данных, которые будут написаны в дейтаграммном пакете в виде двойного значения от 1 до 65 507.

    Пример: 512

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

    Это свойство доступно только для чтения.

    Установка, чтобы позволить другой UDP снабжает сокетом, чтобы связать с тем же локальным портом как этот сокет в виде логического true(1 ) или false(0 ).

    Пример: true

    Типы данных: логический

    Установка, чтобы позволить широковещательно передавать в виде логического true(1 ) или false(0 ).

    Пример: true

    Типы данных: логический

    Это свойство доступно только для чтения.

    Установка, чтобы позволить многоадресную передачу в виде логического true(1 ) или false(0 ).

    Пример: true

    Типы данных: логический

    Это свойство доступно только для чтения.

    Группа IP-адреса, чтобы подписаться на для получения многоадресных данных. Установите это свойство с configureMulticast функция.

    Пример: "226.0.0.1"

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

    Это свойство доступно только для чтения.

    Укажите на цикличное выполнение назад данных в udpport многоадресно передайте, если отправитель подписан на ту же многоадресную группу в виде логического. Установите это свойство с configureMulticast функция.

    Пример: false

    Типы данных: логический

    Функция, чтобы вызвать, когда ошибочное событие имеет место в виде указателя на функцию.

    Пример: @myErrorFun

    Типы данных: function_handle

    Специализированные данные для этого udpport экземпляр. Это - свойство общего назначения для пользовательских данных в виде любого типа данных MATLAB®. Например, можно использовать это свойство хранить данные, когда событие инициировано от функции обратного вызова.

    Пример: datetime()

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | table | cell | function_handle | categorical | datetime | duration | calendarDuration | fi

    Байт udpport Свойства объектов

    Это свойство доступно только для чтения.

    Количество байтов, доступных, чтобы быть считанным, возвращенный как двойное.

    Пример: 512

    Типы данных: double

    Это свойство доступно только для чтения.

    Количество байтов записано в udpport снабдите сокетом, возвращенный как двойное.

    Пример: 48

    Типы данных: double

    Это свойство доступно только для чтения.

    Терминатор для отключенной ASCII коммуникации строки, возвращенной как строка или числовое значение. Если операции чтения и операции записи имеют различные терминаторы строки, значения повторно настраиваются как массив ячеек. Чтобы установить это значение свойства, используйте configureTerminator функция.

    Пример: "CR/LF"

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

    Это свойство доступно только для чтения.

    Функция вызвала, когда доступное для байтов событие имеет место в виде указателя на функцию. Чтобы установить это значение свойства, используйте configureCallback функция.

    Пример: @myAvailFun

    Типы данных: function_handle

    Это свойство доступно только для чтения.

    Количество байтов, требуемых во входном буфере инициировать доступное для байтов событие, возвратилось как числовое значение. Это свойство применяется только когда BytesAvailableFcnMode "byte". Чтобы установить это значение свойства, используйте configureCallback функция.

    Пример: 64

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

    Это свойство доступно только для чтения.

    Условие для инициирования BytesAvailableFcn коллбэк, возвращенный как "off", "byte", или "terminator". Чтобы установить это значение свойства, используйте configureCallback функция.

    Пример: "byte"

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

    Дейтаграмма udpport Свойства объектов

    Это свойство доступно только для чтения.

    Количество дейтаграмм, доступных, чтобы быть считанным, возвращенный как двойное.

    Пример: 64

    Типы данных: double

    Это свойство доступно только для чтения.

    Количество дейтаграмм записано в udpport снабдите сокетом, возвращенный как двойное.

    Пример 8

    Типы данных: double

    Это свойство доступно только для чтения.

    Функция, вызванная, когда доступное для дейтаграмм событие имеет место, возвратилась как указатель на функцию. Чтобы установить это значение свойства, используйте configureCallback функция.

    Пример: @myAvailFcn

    Типы данных: function_handle

    Это свойство доступно только для чтения.

    Количество доступных дейтаграмм, чтобы инициировать доступное для дейтаграмм событие, возвращенное как числовое значение. Это свойство применяется только когда BytesAvailableFcnMode "datagram". Чтобы установить это значение свойства, используйте configureCallback функция.

    Пример: 16

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

    Это свойство доступно только для чтения.

    Условие для инициирования DatagramsAvailableFcn коллбэк, возвращенный как "off" или "datagram". Чтобы установить это значение свойства, используйте configureCallback функция.

    Пример: "datagram"

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

    Функции объекта

    Функции для типа байта и дейтаграммного типа udpport интерфейсы:

    readСчитайте данные из сокета UDP
    writeЗапишите данные к сокету UDP
    configureCallbackУстановите функцию обратного вызова и инициируйте условие для связи с сокетом UDP
    configureMulticastУстановите многоадресные свойства для связи с сокетом UDP
    flushОчистите буферы сокета UDP

    Функции для типа байта udpport интерфейс только:

    readlineПрочитайте строку данных о строке ASCII из сокета UDP
    writelineЗапишите линию данных о ASCII к сокету UDP
    configureTerminatorУстановите терминатор строки для связи строки ASCII с сокетом UDP

    Примеры

    свернуть все

    Этот пример показывает общие задачи коммуникации UDP типа байта.

    Создайте тип байта udpport объект.

    u = udpport("IPV4")
    u = 
    
      UDPPort with properties:
    
         IPAddressVersion: "IPV4"
                LocalHost: "0.0.0.0"
                LocalPort: 60825
        NumBytesAvailable: 0

    Запишите вектор из uint8 данные через udpport снабдите сокетом к заданному адресу и порту..

    write(u,1:5,"uint8","125.0.1.4",2020);

    Считайте 10 значений uint16 данные из udpport сокет.

    data = read(u,10,"uint16");

    Задайте терминатор строки и отправьте строку через udpport снабдите сокетом к заданному адресу и порту.

    configureTerminator(u,"CR/LF");
    writeline(u,"hello","125.0.1.4",2020);

    Считайте отключенную ASCII строку из udpport сокет.

    data = readline(u);

    Подпишитесь на многоадресную группу адреса.

    configureMulticast(u,"226.0.0.1");

    Сконфигурируйте коллбэк, чтобы инициировать, когда 50 байтов будут доступны.

    configureCallback(u,"byte",50,@myCallbackFcn);

    Сбросьте буфер вывода, затем отключите и очистите udpport связь.

    flush(u,"output");
    clear u

    Этот пример показывает общие задачи коммуникации UDP дейтаграммного типа.

    Создайте дейтаграммный тип udpport объект.

    u = udpport("datagram","IPV4")
    u = 
    
      UDPPort with properties:
    
             IPAddressVersion: "IPV4"
                    LocalHost: "0.0.0.0"
                    LocalPort: 53465
        NumDatagramsAvailable: 0

    Запишите вектор из uint8 данные через udpport снабжают сокетом к заданному адресу и порту.

    write(u,1:5,"uint8","125.0.1.4",2020);

    Считайте один дейтаграммный пакет как uint16 данные.

    data = read(u,1,"uint16");

    Подпишитесь на многоадресную группу адреса.

    configureMulticast(u,"226.0.0.1");

    Сконфигурируйте коллбэк, чтобы инициировать, когда 5 дейтаграмм будут доступны.

    configureCallback(u,"datagram",5,@myCallbackFcn);

    Сбросьте буфер вывода, затем отключите и очистите udpport связь.

    flush(u,"output");
    clear u

    В этом примере показано, как дейтаграммный размер влияет на сегментацию данных.

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

    Позвольте нескольким udpport объекты совместно использовать тот же локальный порт.

    Создайте udpport объект связан с LocalPort 3030.

    u1 = udpport("LocalPort",3030,"EnablePortSharing",true);

    Создайте отдельный udpport объект с помощью того же порта.

    u2 = udpport("LocalPort",3030,"EnablePortSharing",true);

    EnablePortSharing должен быть true для обоих udpport объекты.

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

    Функции

    Введенный в R2020b