Запись и чтение данных по Интерфейсу TCP/IP

Запись данных

write функция синхронно записывает данные к удаленному хосту, соединенному с tcpclient объект. Сначала задайте данные, затем запишите данные. Функция ожидает, пока конкретное количество значений не записано в удаленный хост.

В этом примере, tcpclient объект t уже существует.

% Create a variable called data
data = 1:10;

% Write the data to the object t
write(t, data)

Примечание

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

Чтение данных

read функция синхронно считывает данные из удаленного хоста, соединенного с tcpclient возразите и возвращает данные. Существует три опции чтения:

  • Считайте все доступные байты (никакие аргументы).

  • Опционально задайте количество байтов, чтобы читать.

  • Опционально задайте тип данных.

Если вы не задаете размер, значение по умолчанию читало, использует BytesAvailable значение свойства, которое равно количеству байтов, доступных во входном буфере.

В этих примерах, tcpclient объект t уже существует.

% Read all bytes available.
read(t)

% Specify the number of bytes to read, 5 in this case.
read(t,5)

% Specify the number of bytes to read, 10, and the data type, double.
read(t,10,"double")

Примечание

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

Получите данные из сервера метеостанции

Одно из первичного использования коммуникации TCP/IP должно получить данные из сервера. В этом примере показано, как получить и отобразить данные на графике из удаленной метеостанции.

Примечание

IP-адресом в этом примере не является рабочий IP-адрес. Пример показывает, как связать с удаленным сервером. Замените адресом, показанным здесь с IP-адресом или именем хоста сервера, с которым вы хотите связаться.

  1. Создайте tcpclient объект с помощью адреса, показанного здесь и порт 1045.

    t = tcpclient("172.28.154.231",1045)
    t = 
      tcpclient with properties:
    
                  Address: '172.28.154.231'
                     Port: 1045
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    
  2. Получите данные с помощью read функция. Задайте количество байтов, чтобы читать как 30, для 10 выборок от трех датчиков (температура, давление и влажность). Задайте тип данных как double.

    data = read(t,30,"double");
  3. Изменитесь 1 30 данные в 10 3 данные, чтобы показать одному столбцу каждого для температуры, давления и влажности.

    data = reshape(data,[3,10]);
  4. Постройте температуру.

    subplot(311);
    plot(data(:,1));
  5. Постройте давление.

    subplot(312);
    plot(data(:,2));
  6. Постройте влажность.

    subplot(313);
    plot(data(:,3));
  7. Закройте связь между объектом клиента TCP/IP и удаленным хостом путем очистки объекта.

    clear t

Рид Пэйдж от веб-сайта

В этом примере вы читаете страницу из Редактора RFC веб-сайт с помощью объекта TCP/IP.

  1. Создайте объект TCP/IP. Порт 80 стандартный порт для веб-серверов.

    t = tcpclient("www.rfc-editor.org",80);

    Установите Terminator свойство объекта TCP/IP.

    configureTerminator(t,"LF","CR/LF");
  2. Можно теперь связаться с сервером с помощью writeline и readline функции.

    Чтобы попросить, чтобы веб-сервер отправил веб-страницу, используйте GET команда. Можно попросить текстовый файл из Редактора RFC, использование веб-сайта 'ПОЛУЧАЕТ (path/filename)'.

    writeline(t,"GET /rfc/rfc793.txt");

    Сервер получает команду и передает веб-страницу обратно. Вы видите, передали ли какие-либо данные обратно путем рассмотрения NumBytesAvailable свойство объекта.

    t.NumBytesAvailable

    Теперь можно начать считывать данные о веб-странице. По умолчанию, readline читает одну строку за один раз. Можно прочитать строки данных до NumBytesAvailable значение 0. Обратите внимание на то, что вы не видите представленную веб-страницу; данные о файле HTML прокручивают на экране.

    while (t.NumBytesAvailable > 0)
        A = readline(t)
    end
    
  3. Если вы хотите сделать больше коммуникации, можно продолжить читать и записывать данные. Если вы сделаны с объектом, очистите его.

    clear t

Смотрите также

| | |