Подключение к UDP-сокету
The udpport объект позволяет вам выполнить коммуникацию UDP типа байт и дейтаграмм с помощью UDP-сокета на локальном хосте.
u = udpport или u = udpport("byte") создает байтовый тип udpport u объекта, с установленной на IPV4 версией IP-адреса, привязанной к UDP-сокету.
u = udpport("byte", создает байтовый тип IPv)udpport объект с версией IP-адреса, заданной IPv, который может быть либо "IPV4" или "IPV6".
u = udpport("datagram") создает тип дейтаграммы udpport u объекта, с версии IP-адреса, установленной на IPV4.
u = udpport("datagram", создает объект udport типа дейтаграммы с версией IP-адреса, заданной IPv)IPv, который может быть либо "IPV4" или "IPV6".
u = udpport(___, создает Name,Value)udpport и устанавливает заданные свойства объекта, используя аргументы пары "имя-значение". Если вы задаете недопустимое имя или значение свойства, функция не создает объект. udpport свойства, которые можно задать с помощью аргументов пары "имя-значение" LocalHost, LocalPort, Timeout, ByteOrder, OutputDatagramSize, и EnablePortSharing.
IPv - версия IP-адреса"IPV4" (по умолчанию) | "IPV6"Версия IP-адреса, заданная как "IPV4" или "IPV6".
Примечание
Версия IP-адреса должна быть согласованной для всей настройки. Вы не можете общаться между сокетом IPV4 и IPV6 адресом, или наоборот.
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
Свойства, поддерживающие аргументы Name-Value LocalHost, LocalPort, Timeout, ByteOrder, OutputDatagramSize, и EnablePortSharing. Из них LocalHost, LocalPort, и EnablePortSharing стать доступным только для чтения после udpport создается объект.
"Timeout",60udpport ОбъектыIPAddressVersion - Тип версии для IP-адреса"IPV4" (по умолчанию) | "IPV6"Это свойство доступно только для чтения.
Тип версии IP-адреса, заданный как "IPV4" или "IPV6".
Пример:
"IPV6"
Типы данных: char | string
LocalHost - Локальное имя хоста или IP-адресЭто свойство доступно только для чтения.
Локальное имя хоста или десятичный IP-адрес, заданный как вектор символов или строка. Если вы не задаете значение для LocalHost когда вы создаете udpport объект, значение по умолчанию "0.0.0.0" для IPV4, или "::" для IPV6.
Пример:
"144.133.0.0"
Типы данных: char | string
LocalPort - Порт локального хоста для привязкиЭто свойство доступно только для чтения.
Порт локального хоста для привязки для UDP, заданный в виде числа значения от 0 до 65535. Если вы не задаете значение для LocalPort когда вы создаете udpport объект, значение автоматически присваивается.
Пример:
50791
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
ByteOrder - Последовательное расположение байтов"little-endian" (по умолчанию) | "big-endian"Последовательный порядок, в котором байты упорядочены в большие числовые значения, заданные как "little-endian" или "big-endian".
Пример:
"big-endian"
Типы данных: char | string
Timeout - Время, допустимое для операций чтения и записиВремя, допустимое для операций чтения и записи в секундах, задается как double.
Пример:
20
Типы данных: double
OutputDatagramSize - Максимальное количество байтов, записанных в пакет датаграмм Максимальное количество байтов данных, подлежащих записи в пакет датаграммы, заданное как двойное значение от 1 до 65507.
Пример:
512
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
EnablePortSharing - Разрешить другим сокетам UDP связываться с тем же локальным портомfalse (0) (по умолчанию) | true (1)Это свойство доступно только для чтения.
Настройка, позволяющая другим сокетам UDP связываться с тем же локальным портом, что и этот сокет, заданная как логическая true (1) или false (0).
Пример: true
Типы данных: logical
EnableBroadcast - Разрешить вещаниеfalse (0) (по умолчанию) | true (1)Установка разрешения широковещательной передачи, заданная как логическая true (1) или false (0).
Пример:
true
Типы данных: logical
EnableMulticast - Разрешить многоадресную рассылкуfalse (0) (по умолчанию) | true (1)Это свойство доступно только для чтения.
Установка разрешения многоадресной передачи в виде логического true (1) или false (0).
Пример: true
Типы данных: logical
MulticastGroup - группа IP-адресов для приема многоадресных данныхЭто свойство доступно только для чтения.
Группа IP-адресов, на которую нужно подписаться для приема многоадресных данных. Установите это свойство с configureMulticast функция.
Пример:
"226.0.0.1"
Типы данных: char | string
EnableMulticastLoopback - Разрешить закольцовывание, если отправитель находится в группе многоадресной рассылкиtrue (1) (по умолчанию) | false (0)Это свойство доступно только для чтения.
Указание закольцовывания данных в udpport multicast, если отправитель подписан на ту же группу многоадресной передачи, заданную как логический. Установите это свойство с configureMulticast функция.
Пример: false
Типы данных: logical
ErrorOccurredFcn - Функция для вызова при возникновении события ошибкиФункция для вызова при возникновении события ошибки, заданная как указатель на функцию.
Пример: @myErrorFun
Типы данных: function_handle
UserData - Данные для конкретного приложенияДанные конкретного приложения для этого 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 Свойства объектаNumBytesAvailable - Количество байтов, доступных для чтенияЭто свойство доступно только для чтения.
Количество байтов, доступных для чтения, возвращаемое в виде double.
Пример: 512
Типы данных: double
NumBytesWritten - Количество байтов, записанных в udpport гнездоЭто свойство доступно только для чтения.
Количество байтов, записанных в udpport гнездо, возвращается в виде двойника.
Пример:
48
Типы данных: double
Terminator - Терминатор для обмена строками ASCII"LF" (по умолчанию) | "CR" | "CR/LF" | числоЭто свойство доступно только для чтения.
Терминатор для передачи строки с завершением ASCII, возвращенный в виде строки или числового значения. Если операции чтения и записи имеют различные терминаторов строки, значения повторяются как массив ячеек. Чтобы задать это значение свойства, используйте configureTerminator функция.
Пример:
"CR/LF"
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | cell
BytesAvailableFcn - Функция вызывается, когда происходит событие доступности байтовЭто свойство доступно только для чтения.
Функция вызывается, когда происходит событие доступности байтов, заданное как указатель на функцию. Чтобы задать это значение свойства, используйте configureCallback функция.
Пример: @myAvailFun
Типы данных: function_handle
BytesAvailableFcnCount - Количество доступных байтов для запуска событияЭто свойство доступно только для чтения.
Количество байтов, требуемое в буфере входа для запуска события, доступного в байтах, возвращаемое в виде числового значения. Это свойство применяется только тогда, когда BytesAvailableFcnMode является "byte". Чтобы задать это значение свойства, используйте configureCallback функция.
Пример: 64
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
BytesAvailableFcnMode - Условие срабатывания BytesAvailableFcn коллбэк"off" (по умолчанию) | "byte" | "terminator"Это свойство доступно только для чтения.
Условие запуска BytesAvailableFcn коллбэк, возвращается как "off", "byte", или "terminator". Чтобы задать это значение свойства, используйте configureCallback функция.
Пример:
"byte"
Типы данных: string
udpport Свойства объектаNumDatagramsAvailable - Количество датаграмм, доступных для чтенияЭто свойство доступно только для чтения.
Количество дейтаграмм, доступных для чтения, возвращаемое в виде double.
Пример: 64
Типы данных: double
NumDatagramsWritten - Количество датаграмм, записанных в udpport гнездоЭто свойство доступно только для чтения.
Количество датаграмм, записанных в udpport гнездо, возвращается в виде двойника.
Пример: 8
Типы данных: double
DatagramsAvailableFcn - Функция вызывается, когда происходит событие доступности датаграммЭто свойство доступно только для чтения.
Функция, вызываемая, когда происходит событие доступности датаграмм, возвращается как указатель на функцию. Чтобы задать это значение свойства, используйте configureCallback функция.
Пример: @myAvailFcn
Типы данных: function_handle
DatagramsAvailableFcnCount - Количество доступных датаграмм для запуска событияЭто свойство доступно только для чтения.
Количество доступных датаграмм для запуска события, доступного для датаграмм, возвращаемое в виде числового значения. Это свойство применяется только тогда, когда BytesAvailableFcnMode является "datagram". Чтобы задать это значение свойства, используйте configureCallback функция.
Пример: 16
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
DatagramsAvailableFcnMode - Условие срабатывания DatagramsAvailableFcn коллбэк"off" (по умолчанию) | "datagram"Это свойство доступно только для чтения.
Условие запуска 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 объекты.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.