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
для передачи данных. Затем он преобразуется обратно в заданный тип данных, если задан другой тип данных.
Одним из основных видов использования связи TCP/IP является получение данных с сервера. В этом примере показано, как получить и построить данные от удаленной метеостанции.
Примечание
IP-адрес в этом примере не является рабочим IP-адресом. В примере показано, как подключиться к удаленному серверу. Замените адрес, показанный здесь, IP-адресом или именем хоста сервера, с которым вы хотите связаться.
Создайте 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
Получите данные с помощью read
функция. Укажите количество байтов для чтения как 30
, для 10 выборок с трех датчиков (температура, давление и влажность). Укажите тип данных следующим double
.
data = read(t,30,"double");
Измените форму данных 1 на 30 на данные 10 на 3, чтобы отобразить по одному столбцу для температуры, давления и влажности.
data = reshape(data,[3,10]);
Постройте график температуры.
subplot(311); plot(data(:,1));
Постройте график давления.
subplot(312); plot(data(:,2));
Постройте график влажности.
subplot(313); plot(data(:,3));
Закройте соединение между объектом клиента TCP/IP и удаленным узлом путем очистки объекта.
clear t
В этом примере вы считываете страницу с веб-сайта редактора RFC с помощью объекта TCP/IP.
Создайте объект TCP/IP. Портовые 80
является стандартным портом для веб-серверов.
t = tcpclient("www.rfc-editor.org",80);
Установите Terminator
свойство объекта TCP/IP.
configureTerminator(t,"LF","CR/LF");
Теперь вы можете общаться с сервером, используя 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
Если вы хотите сделать больше общения, можно продолжить чтение и запись данных. Если все сделано с объектом, очистите его.
clear t