Функция 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-адресом или именем хоста сервера, с которым вы хотите связаться.
Создайте объект 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 об использовании допустимого адреса.
Получите данные с помощью функции read
. Задайте количество байтов, чтобы читать как 30
, для 10 выборок от 3 датчиков (температура, давление и влажность). Задайте тип данных как double
.
data = read(t, 30, 'double');
Изменитесь 1x30 данные в 10x3 данные, чтобы показать одному столбцу каждого для температуры, давления и влажности.
data = reshape(data, [3, 10]);
Постройте график температуры.
subplot(311); plot(data(:, 1));
Постройте график давления.
subplot(312); plot(data(:, 2));
Постройте график влажности.
subplot(313); plot(data(:, 3));
Закройте связь между объектом клиента TCP/IP и удаленным хостом путем очистки объекта.
clear t
Этот пример показывает, как считать и записать данные uint8
из сервера эха.
Создайте объект tcpclient
с помощью локального хоста в Port
7
.
t = tcpclient('localhost', 7) t = tcpclient with properties: Address: 'localhost' Port: 7 Timeout: 10 BytesAvailable: 0
Присвойте 10 байтов данных uint8
к переменному data
.
data = uint8(1:10) data = 1 2 3 4 5 6 7 8 9 10
Проверьте данные.
whos data Name Size Bytes Class Attributes data 1x10 10 uint8
Запишите данные в echoserver.
write(t, data)
Проверьте, что данные были записаны с помощью свойства BytesAvailable
.
t.BytesAvailable ans = 10
Считайте данные из сервера.
read(t) ans = 1 2 3 4 5 6 7 8 9 10
Закройте связь путем очистки объекта.
clear t