Подключение к 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",60
udpport
Объекты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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.