Подключение к сокету 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", создает объект udpport типа дейтаграммы с версией 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 object, значением по умолчанию является "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 - Время, допустимое для операций чтения и записиВремя, допустимое для операций чтения и записи в секундах, указанное как двойное.
Пример:
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 многоадресная передача, если отправитель подписан на ту же группу многоадресной передачи, заданную как логическая. Задайте это свойство с помощью 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 - Количество байтов, доступных для чтенияЭто свойство доступно только для чтения.
Число байтов, доступных для чтения, возвращаемых как двойные.
Пример: 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 - Количество датаграмм, доступных для чтенияЭто свойство доступно только для чтения.
Число датаграмм, доступных для чтения, возвращаемых как двойные.
Пример: 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.