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

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

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

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

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

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

Примечание

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

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

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

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

  • При необходимости укажите количество байтов для чтения.

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

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

В этих примерах a 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 для передачи данных. Затем он преобразуется обратно в заданный тип данных, если задан другой тип данных.

Получите данные от сервера Weather Station

Одним из основных видов использования связи 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 Editor с помощью 'GET (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

См. также

| | |