Свяжите с сокетом UDP
udpport
объект позволяет вам выполнять тип байта и коммуникацию UDP дейтаграммного типа с помощью сокета UDP на локальном хосте.
u = udpport
или u = udpport("byte")
создает тип байта udpport
объект u
, с набором версии IP-адреса к IPv4, связанному с сокетом UDP.
u = udpport(
или IPv
)u = udpport("byte",
создает тип байта IPv
)udpport
объект с версией IP-адреса, заданной IPv
, который может быть любой "IPV4"
или "IPV6"
.
u = udpport("datagram")
создает дейтаграммный тип udpport
объект u
, с набором версии IP-адреса к IPv4.
u = udpport("datagram",
создает дейтаграммный тип udpport объект с версией IP-адреса, заданной IPv
)IPv
, который может быть любой "IPV4"
или "IPV6"
.
u = udpport(___,
создает Name,Value
)udpport
объект и наборы задали аргументы пары "имя-значение" использования свойств объектов. Если вы задаете недопустимое имя свойства или значение, функция не создает объект. udpport
свойствами, которые могут быть установлены аргументы пары "имя-значение" использования, является LocalHost
, LocalPort
Тайм-аут
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
Тайм-аут
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 до 65 535. Если вы не задаете значение для 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
— Время допускало операции чтения и операции записиВремя допускало операции чтения и операции записи в секундах в виде двойного.
Пример:
20
Типы данных: double
OutputDatagramSize
— Максимальное количество байтов написано в дейтаграммном пакете Максимальное количество байтов данных, которые будут написаны в дейтаграммном пакете в виде двойного значения от 1 до 65 507.
Пример:
512
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
EnablePortSharing
— Позвольте другим сокетам UDP связывать с тем же локальным портомfalse
(0
) (значение по умолчанию) | true
(1
)Это свойство доступно только для чтения.
Установка, чтобы позволить другой UDP снабжает сокетом, чтобы связать с тем же локальным портом как этот сокет в виде логического true
(1 ) или
false
(0 ).
Пример: true
Типы данных: логический
EnableBroadcast
— Позвольте широковещательно передаватьfalse
(0
) (значение по умолчанию) | true
(1
)Установка, чтобы позволить широковещательно передавать в виде логического true
(1 ) или
false
(0 ).
Пример:
true
Типы данных: логический
EnableMulticast
— Позвольте многоадресную передачуfalse
(0
) (значение по умолчанию) | true
(1
)Это свойство доступно только для чтения.
Установка, чтобы позволить многоадресную передачу в виде логического true
(1 ) или
false
(0 ).
Пример: true
Типы данных: логический
MulticastGroup
— Группа IP-адреса, чтобы получить многоадресные данныеЭто свойство доступно только для чтения.
Группа IP-адреса, чтобы подписаться на для получения многоадресных данных. Установите это свойство с configureMulticast
функция.
Пример:
"226.0.0.1"
Типы данных: char |
string
EnableMulticastLoopback
— Позвольте цикличное выполнение назад, если отправитель находится в многоадресной группеtrue
(1
) (значение по умолчанию) | false
(0
)Это свойство доступно только для чтения.
Укажите на цикличное выполнение назад данных в udpport
многоадресно передайте, если отправитель подписан на ту же многоадресную группу в виде логического. Установите это свойство с configureMulticast
функция.
Пример: false
Типы данных: логический
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
— Количество байтов, доступных, чтобы быть считаннымЭто свойство доступно только для чтения.
Количество байтов, доступных, чтобы быть считанным, возвращенный как двойное.
Пример: 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
'callback'"off"
(значение по умолчанию) | "byte"
| "terminator"
Это свойство доступно только для чтения.
Условие для инициирования BytesAvailableFcn
коллбэк, возвращенный как "off"
, "byte"
, или "terminator"
. Чтобы установить это значение свойства, используйте configureCallback
функция.
Пример:
"byte"
Типы данных: string
udpport
Свойства объектовNumDatagramsAvailable
— Количество дейтаграмм, доступных, чтобы быть считаннымЭто свойство доступно только для чтения.
Количество дейтаграмм, доступных, чтобы быть считанным, возвращенный как двойное.
Пример: 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
'callback'"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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.