Освоение правил построения канала передачи данных по протоколу TCP/IP в среде МатЛАБ

        
         оставить комментарий

Цель работы: освоение правил обмена данными по протоколу TCP/IP.

Задача работы: построение канала передачи данных по протоколу TCP/IP в среде МатЛАБ.

Приборы и принадлежности: Два персональных компьютера c МатЛАБ, Ethernet кабель.

 

ОБЩИЕ СВЕДЕНИЯ

ФУНКЦИИ ПРОТОКОЛА TCP

Протокол TCP (Transmission Control Protocol, Протокол контроля передачи) обеспечивает сквозную доставку данных между прикладными процессами, запущенными на узлах, взаимодействующих по сети. Стандартное описание TCP содержится в RFC-793.

TCP - надежный байт-ориентированный (byte-stream) протокол с установлением соединения. TCP находится на транспортном уровне стека TCP/IP, между протоколом IP и собственно приложением. Протокол IP занимается пересылкой дейтаграмм по сети, никак не гарантируя доставку, целостность, порядок прибытия информации и готовность получателя к приему данных; все эти задачи возложены на протокол TCP.

В ТСР режиме клиент должен запросить у сервера разрешение на подключение. Сервер принимает (или отклоняет) запрос. Но если соединение установлено то и клиент и сервер могут передавать и принимать данные.

Данные передаются через установленный порт. Хост может обозначаться или именем хоста, например, 'www.example.com', или  'localhost' или IP адресом, например, '192.0.34.166'.

 

Полезные команды МатЛАБ.

Команда

Назначение

tcpipinfo = instrhwinfo('tcpip')

Имя и адрес компьютера

echotcpip('on',8000)

Создание TCP объекта и устанка номера порта сервера

t = tcpip('localhost',8000);

t = tcpip('127.0.0.1', 4000);

n = tcpip('www.mathworks.com', 80);

Примеры создания TCP/IP объекта. Активация соединения с портом

Порт 80 – стандартный порт для Web серверов

m = tcpip('www.google.ru’);

get(m,{'Name','RemoteHost','RemotePort','Type'})

Получить номер порта Web сервера

set(t, 'InputBufferSize', 30000);

Задание размера буфера. Начальный размер буфера – 512 байт

fopen(t)

Соединение TCP объекта с сервером

get(t, 'Status')

get(t, 'OutputBufferSize')

get(t, 'ValuesSent')

get(t, 'ValuesReceived')

Считывание статуса соединения

Размер выходного буфера

Количество данных записанных в сервер

Количество полученных данных

fprintf(t, GUI_param_str.a);

fprintf(t,'%d', a)

fwrite(t,65:74)

fprintf(t, 'GET /');

Передача данных серверу

 

 

Запрос данных Web сервера

fscanf(t, '%d');  data = fscanf(t, '%f')

data = fscanf(t)

A = fread(t, 10);

while (get(t, 'BytesAvailable') > 0)

A = fscanf(t)

end

isnumeric(data)

Считывание данных сервера

echotcpip('off')

Останов сервера

fclose(t)

отсоединение TCP объекта от сервера

delete(t)

clear t

Удаление объекта из workspace памяти

 

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

 

Задание 1. Обмен данными в среде матлаб через “echo tcp/ip” сервер.

 

Для обмена данными с “echo tcp/ip” сервером необходимо выполнить следующие действия.

  1. Подготовьте данные для пересылки, например, следующую структурную переменную.

GUI_param.a = 2;

GUI_param.b = 100;

GUI_param.c = 2.3;

GUI_param.d = 'privet';

GUI_param.e = 14e5;

  1. Переведите данные в строковый формат

%Conversion::numeric array to string

GUI_param_str.a = num2str(GUI_param.a);

GUI_param_str.b = num2str(GUI_param.b);

GUI_param_str.c = num2str(GUI_param.c);

GUI_param_str.d = num2str(GUI_param.d);

GUI_param_str.e = num2str(GUI_param.e);

  1. Создайте TCP объект и установите номер порта сервера

echotcpip('on',8000) %Start the echo server and create a TCPIP object.

  1. Активируйте соединение с портом

t = tcpip('localhost',8000); %active connection to 8000 port

  1. Соедините TCP объект с сервером

fopen(t) %Connect the TCPIP object to the host.

  1. Передайте данные серверу.

%Write to the host.    

fprintf(t, GUI_param_str.a);

fprintf(t, GUI_param_str.b);

fprintf(t, GUI_param_str.c);

fprintf(t, GUI_param_str.d);

fprintf(t, GUI_param_str.e);

 

fwrite(t,65:74)

 

Примечание: команда fprintf(t,'format', cmd) передает данные в форматах:  d, i, o, u, x, X, f, e, E, g, G, c, and s  

 

  1. Считайте данные с сервера

%Read from the host.    

SIM_param.a = fscanf(t, '%d');

SIM_param.b = fscanf(t, '%d');

SIM_param.c = fscanf(t, '%f');

SIM_param.d = fscanf(t, '%s');

SIM_param.e = fscanf(t, '%e');

 

A = fread(t, 10);

 

Примечание: команда fscanf(t,'format') принимает данные в форматах:  d, i, o, u, x, X, f, e, E, g, G, c, and s  

 

  1. Остановите сервер и отсоедините TCP объект от сервера

%Stop the echo server and disconnect the TCPIP object from the host.

echotcpip('off')

fclose(t)

 

Примечание: Чтобы получить дополнительную информацию о работе с сервером, введите команду “instrhelp echotcpip”

 

Задание 2. Соединение с удаленным Хостом (Remote Host)

  1. Создайте TCPIP объект (порт - 80), например, 

t = tcpip('www.mathworks.com', 80); или t = tcpip('www.google.ru', 80);

  1. Увеличьте размер буфера с 512 до 30000 байт.

set(t, 'InputBufferSize', 30000);

  1. Подключите объект

fopen(t);

  1. Запросите основную Web страницу.

fprintf(t, 'GET /');

  1. Определите сколько получено байт

get(t, 'BytesAvailable')

  1. Считайте полученные данные

while (get(t, 'BytesAvailable') > 0)

A = fscanf(t)

end

  1. Отсоедините и удалите объект

fclose(t);

delete(t);

clear t

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Как установить связь с Web сервером в среде МатЛАБ?
  2. Как связать две среды МатЛАБ через TCP/IP соединение? Покажите на примере.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1. Help МатЛАБ.

Dr. Bob Davidov

Реклама

Комментарии

Вам будет также интересно

Синонимы к слову «канал»

Все синонимы к слову КАНАЛ вы найдёте на Карте слов.

Программы для сисадминов — современное решение проблем

Программы для сисадминов помогают им ориентироваться в лабиринтах компьютеров, принтеров, серверов и другого сетевого оборудования, поскольку если системный администратор допустит малейшую оплошность, не отреагирует вовремя на неполадки в сети – вся система рухнет.

Читать далее...

Учет компьютеров и программного обеспечения

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

Читать далее...

Программа для учёта компьютеров в локальной сети организации

Рано или поздно каждая организация сталкивается с необходимостью учета компьютеров и контроля за установленным на них аппаратным обеспечением. Специализированные программы для учета компьютеров в этом случае имеют ряд существенных преимуществ перед стандартной ручной инвентаризацией.

Читать далее...

Инвентаризация локальной сети

Если локальная сеть компании разветвленная, а компьютеров в ней более десяти, то необходимость внедрения механизмов инвентаризации сети становится очевидной. Что же это такое и зачем нужно?

Читать далее...

Сетевые программы

Сетевые программы – это программное обеспечение, отвечающее за стабильную работу компьютерного парка организации. Они призваны решать многие задачи и проблемы, связанные с сетью, как то: возникающие неполадки с оборудованием, аппаратным обеспечением и софтом, обеспечение информационной безопасности компании и т.д.

Читать далее...

Добавить статью

Приглашаем вас добавить статью и стать нашим автором

Поделитесь с друзьями

Статистика

©  Интернет-журнал «Серый Волк» 2010-2016

Перепечатка материалов приветствуется при обязательном указании имени автора и активной,
индексируемой гиперссылки на страницу материала или на главную страницу журнала.