Основной рабочий процесс, чтобы читать и запись данных по UDP

Этот пример показывает основной рабочий процесс текстовых операций чтения и операций записи с объектом UDP, соединенным с удаленным инструментом.

Используемый инструмент является сервером эха на основанном на Linux PC. Сервер эха является сервисом, доступным от операционной системы, которая возвращается (повторяет) полученные данные к отправителю. Именем хоста является daqlab11 и номером порта является 7. Имя хоста присвоено вашим администратором сети.

  1. Создайте инструментальный объект — Создают объект UDP, сопоставленный с daqlab11.

    u = udp('daqlab11',7);
  2. Свяжите с инструментом — Подключение u к серверу эха.

    fopen(u)
  3. Запишите и считайте данные — Вы используете 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 offfscanf чтения через дейтаграммные контуры до символа терминатора строки получены.

    u.DatagramTerminateMode = 'off'
    data = fscanf(u)
    data =
    Request TimeRequest Time
  4. Разъединитесь и вымойтесь — Когда вам больше не будет нужен u, необходимо отключить его от хоста и удалить его из памяти и из рабочей области MATLAB®.

    fclose(u)
    delete(u)
    clear u

Примечание

Порты UDP могут быть совместно использованы другими приложениями, чтобы позволить, чтобы несколько приложений слушали дейтаграммы UDP на том порте. Это допускает способность слушать широковещательные сообщения UDP на том же локальном номере порта и в MATLAB и в других приложениях. Можно включить и отключить эту возможность с новым свойством объекта UDP под названием EnablePortSharing. Смотрите включают совместное использование порта по UDP.