Запись и чтение данных по Интерфейсу 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 объект с помощью Address показанный здесь и Port из 1045.

    t = tcpclient('172.28.154.231', 1045)
    
    t = 
    
       tcpclient with properties:
    
              Address: '172.28.154.231'
                 Port: 1045
              Timeout: 10
       BytesAvailable: 0

    Смотрите перечисленный выше шаг примечания 1 об использовании допустимого адреса.

  2. Получите данные с помощью read функция. Задайте количество байтов, чтобы читать как 30, для 10 выборок от 3 датчиков (температура, давление и влажность). Задайте тип данных как double.

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

    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

Чтение и Запись uint8 Данные

В этом примере показано, как считать и записать uint8 данные из сервера эха.

  1. Создайте tcpclient объект с помощью локального хоста в Port7 .

    t = tcpclient('localhost', 7)
    
    t = 
    
       tcpclient with properties:
    
              Address: 'localhost'
                 Port: 7
              Timeout: 10
       BytesAvailable: 0
  2. Присвойте 10 байтов uint8 данные к переменной data.

    data = uint8(1:10)
    
    data = 
    
      1    2    3    4    5    6    7    8    9    10
  3. Проверяйте данные.

    whos data
    
    Name     Size     Bytes     Class     Attributes
    
    data     1x10        10     uint8
  4. Запишите данные в echoserver.

    write(t, data)
  5. Проверяйте, что данные были записаны с помощью BytesAvailable свойство.

    t.BytesAvailable
    
    ans = 
    
        10
  6. Считайте данные из сервера.

    read(t)
    
    ans = 
    
      1    2    3    4    5    6    7    8    9    10
  7. Закройте связь путем очистки объекта.

    clear t