Вы создаете объект UDP с функцией udp
. udp
не требует имени удаленного хоста как входной параметр. Однако, если вы используете объект связаться с определенным инструментом, необходимо задать удаленный хост и номер порта.
Несмотря на то, что UDP является связью не сохраняющей состояние, открытие объекта UDP с недопустимым именем хоста сгенерирует ошибку.
Как описано в Configuring Properties Во время Создания объекта, можно также сконфигурировать значения свойств во время создания объекта, такие как свойство LocalPort
, если вы будете использовать объект считать данные из инструмента.
Например, чтобы создать объект UDP, сопоставленный с удаленным хостом 127.0.0.1, удаленный порт 4012, и локальный порт 3533,
u = udp('127.0.0.1', 4012, 'LocalPort', 3533);
Объект UDP u
теперь существует в рабочей области MATLAB®. Можно отобразить класс u
с командой whos
.
whos u Name Size Bytes Class u 1x1 632 udp object Grand total is 12 elements using 632 bytes
Когда объект UDP создается, следующие свойства являются присвоенными значениями на основе значений, предоставленных функции upd
. Эти свойства общего назначения предоставляют информацию об объекте UDP.
UDP описательные свойства
PropertyName | Описание |
---|---|
Задайте описательное имя для объекта UDP. | |
Задайте удаленный хост. | |
Задайте удаленный серверный порт для связи. | |
Укажите на тип объекта. | |
Задайте локальный серверный порт, если вы ожидаете получать данные из инструмента. |
Чтобы получить список опций, можно использовать на функции, нажать клавишу Tab после ввода функции на командной строке MATLAB. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой функции завершения вкладки "Дополнительно" смотрите Используя Заполнение клавишей Tab для Функций.
Можно отобразить значения этих свойств для u
с функцией get
.
u.Name ans = UDP-127.0.0.1
u.RemoteHost ans = 127.0.0.1
u.RemotePort ans = 4012
u.Type ans = udp
u.LocalPort' ans = 3533
Объект UDP предоставляет вам удобное отображение, которое обобщает важную настройку и информацию состояния. Можно вызвать сводные данные отображения эти три пути:
Введите имя переменной объекта UDP в командной строке.
Исключите точку с запятой при создании объекта UDP.
Исключите точку с запятой при конфигурировании свойств с помощью записи через точку.
Можно также отобразить итоговую информацию через браузер Рабочей области путем щелчка правой кнопкой по инструментальному объекту и выбора Display Summary из контекстного меню.
Сводные данные отображения для объекта UDP u
приведены ниже.
UDP Object : UDP-127.0.0.1 Communication Settings RemotePort: 4012 RemoteHost: 127.0.0.1 Terminator: 'LF' Communication State Status: closed RecordStatus: off Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0
Порты UDP могут быть совместно использованы другими приложениями, чтобы позволить, чтобы несколько приложений слушали дейтаграммы UDP на том порте. Можно связать объект UDP с определенным номером LocalPort
, и в другом приложении связывают сокет UDP с тем же самым локальным номером порта, таким образом, оба могут получить широковещательные данные о UDP.
Это допускает способность слушать широковещательные сообщения UDP на том же локальном номере порта и в MATLAB и в других приложениях. Можно включить и отключить эту возможность с новым свойством объекта UDP под названием EnablePortSharing
.
Свойство EnablePortSharing
позволяет вам управлять совместным использованием порта UDP, и возможными значениями является on
и off
. Значением по умолчанию является off
.
Значения EnablePortSharing | Результат |
---|---|
'on' | Позволяет другим сокетам UDP связывать с объектом UDP |
'off' (значение по умолчанию) | Препятствует тому, чтобы другие сокеты UDP связали с объектом UDP |
Обратите внимание на то, что необходимо установить это свойство прежде, чем вызвать fopen
на объекте UDP, или вы получите ошибку.
Этот пример показывает создание объекта UDP, присваивая локальный порт, включая совместное использование порта, затем открывая связь.
u = udp(); u.LocalPort = 5000; u.EnablePortSharing = 'on'; fopen(u)
Можно теперь сделать операции чтения и операции записи, и другие приложения могут получить доступ к порту, поскольку порт, совместно использующий, включен.