Этот пример показывает основной рабочий процесс текстовых операций чтения и операций записи с объектом UDP, соединенным с удаленным инструментом.
Используемый инструмент является сервером эха на основанном на Linux PC. Сервер эха является сервисом, доступным от операционной системы, которая возвращается (повторяет) полученные данные к отправителю. Именем хоста является daqlab11
и номером порта является 7
. Имя хоста присвоено вашим администратором сети.
Создайте инструментальный объект — Создают объект UDP, сопоставленный с daqlab11
.
u = udp('daqlab11',7);
Свяжите с инструментом — Подключение u
к серверу эха.
fopen(u)
Запишите и считайте данные — Вы используете fprintf
функционируйте, чтобы записать текстовые данные в инструмент. Например, запишите следующую строку в сервер эха.
fprintf(u,'Request Time')
UDP отправляет и получает данные в блоках, которые называются дейтаграммами. Каждый раз, когда вы пишете или считываете данные с объектом UDP, вы пишете или читаете дейтаграмму. Например, строка, отправленная в сервер эха, составляет дейтаграмму с 13-байтовыми — 12 байтами ASCII плюс терминатор строки перевода строки.
Вы используете fscanf
функционируйте, чтобы считать текстовые данные из сервера эха.
fscanf(u) ans = Request Time
DatagramTerminateMode
свойство указывает, завершает ли операция чтения работу, когда дейтаграмма получена. По умолчанию, DatagramTerminateMode
on
и операция чтения завершает работу, когда дейтаграмма получена. Чтобы возвратить несколько дейтаграмм в одной операции чтения, установите DatagramTerminateMode
к off
.
Следующие команды пишут две дейтаграммы. Обратите внимание на то, что только вторая дейтаграмма отправляет символ терминатора строки.
fprintf(u,'%s','Request Time') fprintf(u,'%s\n','Request Time')
Начиная с DatagramTerminateMode
off
fscanf
чтения через дейтаграммные контуры до символа терминатора строки получены.
u.DatagramTerminateMode = 'off' data = fscanf(u) data = Request TimeRequest Time
Разъединитесь и вымойтесь — Когда вам больше не будет нужен u
, необходимо отключить его от хоста и удалить его из памяти и из рабочей области MATLAB®.
fclose(u) delete(u) clear u
Порты UDP могут быть совместно использованы другими приложениями, чтобы позволить, чтобы несколько приложений слушали дейтаграммы UDP на том порте. Это допускает способность слушать широковещательные сообщения UDP на том же локальном номере порта и в MATLAB и в других приложениях. Можно включить и отключить эту возможность с новым свойством объекта UDP под названием EnablePortSharing
. Смотрите включают совместное использование порта по UDP.