Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_ukazania_po_lab_1-2_Seti_i_TK.doc
Скачиваний:
15
Добавлен:
16.09.2019
Размер:
228.35 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Воронежский государственный технический

университет

Кафедра систем автоматизированного проектирования

и информационных систем

Разработка прикладных программ сетевого обмена данными в среде delphi

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторным работам по курсу

«Сети ЭВМ и телекоммуникации»

для студентов специальности 200700 «Системы автоматизированного проектирования»

очной формы обучения

Воронеж 2012

Составители: канд. техн. наук Д.Э. Короткевич,

преп. С.И.Короткевич.

УДК 681.3

Разработка прикладных программ сетевого обмена данными в среде DELPHI. Методические указания к лабораторным работам по курсу «Сети ЭВМ и телекоммуникации» для студентов специальности 200700 «Системы автоматизированного проектирования» очной формы обучения / Воронеж. гос. техн. ун-т. Сост.: Д.Э.Короткевич, С.И.Короткевич,. Воронеж, 2012. 39 с.

Методические указания содержат теоретические и практические основы разработки программного обеспечения обмена данными по http и ftp протоколам, а также использования интерфейса сокетов в вычислительных сетях с помощью среды программирования Delphi.

Предназначено для студентов 4 курса.

Печатается по решению редакционно-издательского совета Воронежского государственного технического университета

 Воронежский государственный технический университет, 2012

Лабораторная работа № 1 разработка прикладной программы обмена данными в сети internet

Цель работы: изучение принципов работы протоколов и разработка прикладных программ, осуществляющих процесс обмена данными в сети Internet.

Для разработки программы необходимо использовать среду Delphi версии 5.0 или старше под управлением ОС Windows NT/2000/XP.

Краткие теоретические сведения

Система гипермедиа WWW

WWW (World Wide Web - всемирная паутина) - самый популярный и интересный сервис Интернет сегодня, самое популярное и удобное средство работы с информацией.

WWW работает по принципу клиент-сервер: существует множество серверов, которые по запросу клиента возвращают ему гипермедийный документ - документ, состоящий из частей с разнообразным представлением информации (текст, звук, графика, трехмерные объекты и т.д.), в котором каждый элемент может являться ссылкой на другой документ или его часть. Ссылки эти в документах WWW организованы таким образом, что каждый информационный ресурс в глобальной сети Интернет однозначно адресуется, и документ, который Вы читаете в данный момент, способен ссылаться как на другие документы на этом же сервере, так и на документы (и вообще на ресурсы Интернет) на других компьютерах Интернет. Причем пользователь не замечает этого, и работает со всем информационным пространством Интернет как с единым целым. Ссылки WWW указывают не только на документы, специфичные для самой WWW, но и на прочие сервисы и информационные ресурсы Интернет. Более того, большинство программ-клиентов WWW (browsers, навигаторы) не просто понимают такие ссылки, но и являются программами-клиентами соответствующих сервисов: ftp, gopher, сетевых новостей Usenet, электронной почты и т.д. Таким образом, программные средства WWW являются универсальными для различных сервисов Интернет, а сама информационная система WWW играет интегрирующую роль.

Вот некоторые термины, использующиеся в WWW:

1. html - hypertext markup language, язык разметки гипертекста. Это формат гипермедийных докумен тов, использующихся в WWW для предоставления информации. Формат этот не описывает то, как документ должен выглядеть, но его структуру и связи. Внешний вид документа на экране пользователя определяется навигатором - если Вы работаете за графическим или текстовым терминалом, то в каждом случае документ будет выглядеть по-своему, но структура его останется неизменной, поскольку она задана форматом html. Имена файлов в формате html обычно оканчиваются на html (или имеют расширение htm в случае, если сервер работает под MS-DOS или Windows).

2. URL - uniform resource locator, универсальный указатель на ресурс. Так называются ссылки на информационные ресурсы Интернет.

3. http - hypertext transfer protocol, протокол передачи гипертекста. Это название протокола, по которому взаимодействуют клиент и сервер WWW.

WWW - сервис прямого доступа, требующий полноценного подключения к Интернет, и более того, часто требующий быстрых линий связи, в случае, если документы, которые Вы читаете, содержат много графики или другой нетекстовой информации. Однако существуют мосты, позволяющие получать информацию, содержащуюся в WWW, посредством электронной почты. Возможность такая есть, но таких мостов мало, да и толку от них немного - чтобы успешно использовать возможности WWW, требуется прямой доступ в Интернет, а при его отсутствии теряются многие плюсы, создавшие WWW сегодняшнюю популярность. Кроме того, некоторые возможности, имеющиеся при обычной работе, просто недоступны через электронную почту. Это, в основном, относится к элементам интерактивности в WWW. Например, в языке html поддерживаются формы. Пользователь вводит в них некоторую информацию, которая затем может передаваться на сервер. Таким образом заполняются анкеты, регистрационные карты, проводятся социологические опросы.

Практически любая информация, которая предоставляется в публичный доступ, отображается средствами WWW. Если какая-та информация не может быть помещена в WWW, то это обусловлено некоторыми ограничениями и недостатками WWW. Во-первых, соединение между клиентом и сервером WWW одноразовое: клиент посылает запрос, сервер выдает документ, и связь прерывается. Это значит, что сервер не имеет механизма уведомления клиента об изменении или поступлении новых данных. Проблема решается несколькими способами: разрабатывается новая версия протокола http, которая будет позволять длительное соединение, передачу данных в несколько потоков, разделение каналов передачи данных и управления ими. Если она будет реализована и станет поддерживаться стандартным программным обеспечением WWW, то это решит снимет вышеописанные недостатки. Другой путь предлагается с использованием навигаторов, которые смогут локально исполнять программы на интерпретируемых языках - как это сделано в проекте Java компании Sun Microsystems, о котором будет рассказано ниже. Следующая проблема WWW - недостаточность языка описания документов html для решения многих задач. Например, html не предусматривает вывод математических символов, и текста уменьшенного по сравнению со стандартным размером. Эта задача решается тем же образом, что и предыдущая – разработкой новых версий языка html и новых типов навигаторов, расширяемых произвольным образом.

Усилия эти затруднены децентрализованностью WWW - например, сегодня стандартом становятся не те расширения языка html, которые лучше, а те, которые привносятся самыми популярными навигаторами. Децентрализованность несет и множество других проблем: отсутствие общего каталога серверов и средств тотального поиска по ним.

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

Протокол и утилита обмена файлами FTP

Протокол FTP (File Transfer Protocol - Протокол передачи файлов) предназначен для передачи файлов между машинами без установления дистанционного соединения между ними. С его помощью можно передавать файлы, работать с каталогами и пользоваться электронной почтой, но он не позволяет запускать программы на удаленной ЭВМ.

Для своей работы FTP использует транспортный протокол TCP, но связь по FTP поддерживается с помощью двух соединений: по одному из них передаются команды FTP, а по другому - данные. Поэтому программная реализация FTP предполагает работу двух процессов на каждой из взаимодействующих машин. Первый из них отвечает за передачу команд и называется протокольным интерпретатором (PI - protocol interpreter), а второй - за передачу данных и называется процессом передачи данных (DTP - data transfer process). Протокол TCP обеспечивает установление, разрыв соединения и надежность передачи данных. На удаленной ЭВМ (сервере) процессу передачи данных соответствует порт 20, а протокольному интерпретатору - порт 21.

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

На локальной ЭВМ (клиенте) может выполняться любое пользовательское приложение, обеспечивающее соединение по FTP. В настоящее время разработано большое количество программ, обеспечивающих работу с этим протоколом. Но широко известна самая простейшая утилита, которая носит то же название, что и протокол - ftp.

Общие принципы работы с утилитой ftp

При запуске утилиты ftp требуется указать имя или IP-адрес удаленной машины, с которой требуется установить соединение. Если этот адрес не указан, то ftp переходит в командный режим без установления соединения. Тогда для начала сеанса связи надо воспользоваться командой open. После того, как соединение установлено, необходимо пройти авторизацию доступа, для чего требуется ввести имя и пароль пользователя. В большинстве систем право доступа имеют только зарегистрированные пользователи, но иногда допускается так называемый "анонимный" вход, который будет рассмотрен далее. При работе с ftp имя и права пользователя определяются удаленной, серверной, а не локальной ЭВМ (в общем случае имена пользователя на сервере и клиенте могут быть различны). Для работы с каталогами, копирования и удаления файлов с удаленной машины пользователь должен располагать соответствующими правами, иначе эти команды выполняться не будут.

Следует обратить внимание, что и после установления соединения с удаленной ЭВМ, все команды пользователя ftp выполняются относительно локальной ЭВМ. Особенно аккуратно следует выполнять команды копирования файлов, чтобы не потерять содержимое нужных файлов на машине-клиенте.

Протокол FTP позволяет передавать файлы в нескольких форматах, которые в общем случае системно зависимы. В большинстве систем определены два режима передачи файлов - текстовый и двоичный. Текстовый файл состоит из строк ASCII-символов, разделенных кодами перевода строки и возврата каретки, при его передаче выполняются действия по перекодировке символов. Для двоичных файлов не предусмотрено никакого определенного формата и никакой перекодировки, их передача осуществляется быстрее. Текстовый файл можно передавать как двоичный, но не наоборот.

Типичный сеанс работы с ftp включает следующие этапы:

    • запуск утилиты, установление соединения с удаленной ЭВМ;

    • переход в требуемый каталог на удаленной ЭВМ (сервере);

    • выбор режима передачи файлов;

    • передача данных согласно командам пользователя;

    • завершение работы, разрыв соединения.

Эти процедуры выполняются последовательно в каждом сеансе. Самые распространенные команды пользователя в утилите ftp приведены в табл. 1.

Более подробное описание команд утилиты ftp можно получить в предлагаемой литературе и в руководствах по работе с утилитой. Как уже было сказано выше, для различных ОС существует множество других приложений, обеспечивающих работу с протоколом FTP. Такого рода утилиты могут обладать рядом дополнительных возможностей.

Возможности работы с FTP при анонимном доступе

Протокол FTP широко используется для обмена данными в сети Internet. Многие сервера сети поддерживают этот протокол. Поскольку количество пользователей в этой сети очень велико, то задача выделения каждому из них индивидуальных прав доступа представляется абсолютно нереальной. В то же время, большое число серверов стремится предоставить услуги по обмену данными максимально возможному количеству клиентов сети. Например, такие услуги предоставляют сервера сервисных центров фирм, занимающихся распространением свободно используемого программного обеспечения.

В таких случаях для установления соединения по протоколу FTP используется метод анонимного доступа. В этом варианте в качестве имени пользователя используется слово anonymous, а вместо пароля - чаще всего слово guest (гость).

Таблица 1 - Наиболее употребительные команды ftp  

Команда

Параметры

Описание

ascii

 

Переключиться в режим передачи текстовых файлов

binary

 

Переключиться в режим передачи двоичных файлов

cd

имя каталога

Сменить рабочий каталог на удаленной ЭВМ

close

 

Закрыть соединение с удаленной ЭВМ

del

имя файла

Удалить файл на удаленной ЭВМ

dir

маска файлов

Отобразить содержимое текущего каталога сервера

get

имя файла

Получить файл с удаленной ЭВМ

hash

on/off

Включить или выключить режим вывода знака "#" для каждого переданного блока данных при передаче файлов

help

 

Получить подсказку

lcd

имя каталога

Сменить рабочий каталог на локальной ЭВМ

mget

маска файлов

Получить несколько файлов с удаленной ЭВМ

mput

маска файлов

Отправить несколько файлов на удаленную ЭВМ

open

адрес ЭВМ

Установить соединение с указанной ЭВМ

put

имя файла

Передать файл на удаленную ЭВМ

pwd

 

Вывести имя текущего каталога

quote

команда

Передать команду непосредственно FTP (для ввода команд администратора)

quit

 

Завершить работу с утилитой

При анонимном доступе пользователь имеет, как правило, очень ограниченные права. Чаще всего при анонимном доступе пользователь может только перемещаться по ограниченному перечню каталогов и получать файлы с удаленной ЭВМ (выполнять команды get и mget).

Метод анонимного доступа - это основной метод, который используют для обмена данными по протоколу FTP программы-браузеры сети Internet, например, широко распространенные программы "Internet Explorer"и "Netscape Navigator". Эти программы имеют возможность только получать файлы с удаленных ЭВМ, в то время, как полный доступ по протоколу FTP дает пользователю также возможность передавать файлы на удаленные ЭВМ. Имя и пароль для анонимного доступа в этих программах можно настраивать.

 

Программирование взаимодействия программ на основе прикладных протоколов

Во многих ОС прикладные протоколы реализованы в различных утилитах. Эти утилиты ориентированы, прежде всего, на работу с пользователями операционных систем. Однако часто возникает необходимость осуществить обмен данными непосредственно между прикладными программами, минуя вмешательство человека или при его ограниченном участии. Тогда у разработчиков программ возникает потребность в том, чтобы сами прикладные программы могли непосредственно использовать те же самые протоколы, что и описанные выше утилиты. Естественно, к этому нет никаких препятствий - прикладные протоколы сети Internet являются открытыми протоколами, их команды и принцип работы известны и регламентированы общедоступными стандартами.

Можно разработать программу, которая будет обеспечивать обмен по выбранному протоколу с любой стороны - и со стороны сервера, и со стороны клиента. Важно только, чтобы такая программа соответствовала спецификации выбранного протокола. Если же это будет не так, и вновь созданная программа не будет удовлетворять требованиям протокола или будет удовлетворять им не полностью, то она не сможет установить связь и осуществить обмен данными с другими программами и утилитами, уже существующими в сети..

Поскольку в качестве транспортного протокола для всех протоколов прикладного уровня используется TCP, то чтобы реализовать обмен данными по любому выбранному протоколу необходимо использовать обмен данными на основе именно TCP. Для этого в составе многих ОС имеются специальные библиотеки программных средств, позволяющие прикладным программам пользователя осуществлять обмен данными по протоколу TCP.

Такие библиотеки позволяют осуществлять самые простые операции: установить связь с ЭВМ, для которой известны адрес и порт связи, передать блок данных по протоколам TCP или UDP, получить блок данных, поступивший на локальную ЭВМ.

Средства реализации прикладных протоколов Internet в среде разработки Borland Delphi

В среде программирования Borland Delphi существуют прикладные библиотеки для реализации прикладных протоколов Internet.

Для работы с прикладным протоколом необходимо создать экземпляр класса, реализующего такую работу. Следующим действием, как правило, становится установка необходимых параметров для созданного класса - примерами таких параметров служат, прежде всего, адрес и порт ЭВМ, с которой будет устанавливаться соединение, затем, имя и пароль пользователя и т.д. Конкретный состав параметров зависит от типа протокола и того, для какой цели его планируется использовать.

После того, как все необходимые параметры заданы, можно инициировать обмен данными. Для этого нужно вызвать некоторый метод протокола и передать ему нужные аргументы. Тогда объект установит соединение, а также автоматически транслирует значения всех установленных свойств в последовательность команд протокола. Когда все команды будут выполнены, прикладная программа может завершить обмен, или же, изменив какие-то данные, инициировать его снова. В процессе обмена могут возникать события, связанные, например, с разрывом соединения, ошибкой передачи данных, отсутствием прав пользователя и другими ситуациями. По многим из этих ситуаций у объектов предусмотрена активизация связанных с ними событий - функций и процедур языка программирования, в которых разработчик может предусмотреть все необходимые действия по реакции прикладной программы на событие.

По завершении обмена данными прикладная программа должна закрыть соединение и удалить экземпляр класса.

Примеры для разработки программной оболочки

1. WEB-браузер

Для разработки собственного WEB-браузера используется набор компонентов "Microsoft Internet Controls". Это значит, что Ваш браузер будет иметь те же достоинства и недостатки, что и у стандартного Internet Explorer. Единственное, что может успокоить - так это то, что интерфейс может быть таким, каким Вы захотите, потому что сделан Вашими руками.

Создание браузера заключается в следующих шагов:

1. Создайте новый проект ("File" -> "New Application") и сразу измените заголовок и иконку.

2. Установите на форму компонент "WebBrowser" (он находится на закладке "Internet" или "ActiveX") - у Вас появится белый квадрат с именем WebBrowser1.

3. Расположите на форме также компонент "CoolBar", который находится на закладке "Win32" палитры компонентов. Это панелька, которая должна выровняться по верхнему краю формы.

4. Выделите WebBrowser1 и перейдите в Object Inspector. Щелкните по свойству "Align" и в выпадающем списке выберите "alClient". "WebBrowser" должен растянуться на все свободное место формы. В результате Вы увидите нечто похожее на рис. 1.

Рис. 1 – Окно WEB-браузера

5. Установите на CoolBar1 панель "ToolBar" из закладки "Win32" и "ComboBox" из закладки "Standart" палитры компонентов (Все это Вы должны расположить именно внутри CoolBar1). После этого нужно выделить CoolBar1 и перейти в ObjectInspector. Здесь необходимо изменить строку "AutoSize" на "true" (по умолчанию она "false").

6. Выделите ComboBox1 (выпадающий список) и перейдите в ObjectInspector. Здесь необходимо перейти на закладку "Events", выбрать строку "OnKeyDown" и ввести имя процедуру (двойное нажатие кнопки мыши). Delphi создаст процедуру, которая будет вызываться каждый раз, когда Вы будете вводить какую-нибудь букву в "ComboBox". Здесь Вы должны написать следующее:

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key= VK_RETURN then WebBrowser1.Navigate(ComboBox1.Text); end;

7. Запустите программу, введите какой-нибудь адрес в строку ComboBox и нажмите клавишу Enter Если вы правильно ввели адрес, то в WebBrowser1 через несколько минут должен появиться указанная страница.

Введение дополнительных возможностей в WEB-браузер.

Выберите ToolBar1 и перейдите в ObjectInspector. Здесь нужно изменить свойства "AutoSize", "ShowCaption" и "Flat" на "true" (все они по умолчанию равны false). Нажмите правую кнопку мыши на ToolBar1 и из появившегося меню выберите пункт "New Button". На ToolBar1 должна появиться новая кнопка с именем "ToolButton1". Выделите ее и в ObjectInspector-е поменяйте свойство Caption на "Открыть". Создайте еще насколько кнопок с заголовками: Назад, Вперед, Стоять, Обновить и Печать. Результат должен быть похож на рис. 2.

Рис. 2 – Окно WEB-браузера с дополнительными кнопками

Установите также на форму "OpenDialog" из закладки "Dialogs" палитры компонентов.

Теперь дважды кликните по кнопке "Открыть", и Delphi автоматически создаст процедуру, которая будет вызываться при нажатии этой кнопки. В этой процедуре нужно написать следующее:

procedure TForm1.ToolButton1Click(Sender: TObject); begin if OpenDialog1.Execute then begin WebBrowser1.Navigate(OpenDialog1.FileName); ComboBox1.Text:=OpenDialog1.FileName; end; end;

Теперь можно запустить программу и открыть с помощью этой кнопки любой файл на диске.

Для работы кнопки "Назад" необходимо в процедуре, соответствующей событию OnClick вставить строку:

procedure TForm1.ToolButton2Click(Sender: TObject); begin WebBrowser1.GoBack; end;

Для кнопки "Вперед" напишите следующий код:

procedure TForm1.ToolButton3Click(Sender: TObject); begin WebBrowser1.GoForward; end;

Для кнопки "Стоп" напишите:

procedure TForm1.ToolButton4Click(Sender: TObject); begin WebBrowser1.Stop; end;

Для кнопки "Обновить":

procedure TForm1.ToolButton5Click(Sender: TObject); begin WebBrowser1.Refresh; end;

И, наконец, для кнопки "Печать":

procedure TForm1.ToolButton6Click(Sender: TObject); var PostData, Headers:OLEvariant; begin WebBrowser1.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DODEFAULT,PostData, Headers); end;

В этой строке посылается команду через OLE ядру IE.

Ваш браузер почти готов. Можете немного изменить работу программы для лучшего восприятия.

Для этого размещаем на форме StatusBar из закладки "Win32" и изменяем у него свойство "SimplePanel" в true (по умолчанию false). Выделяем WebBrowser1 и переходим на закладку "Events" в ОbjecInspector-е. Дважды кликните по строке "OnStatusTextChange" и напишите в созданной процедуре следующее:

procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject; const Text: WideString); begin StatusBar1.SimpleText:=Text; end;

Здесь мы присваиваем переменную "Text" (в ней хранится текст подсказки) в StatusBar1. Теперь можно видеть подсказки в строке состояния.

Добавьте ещё индикатор загрузки. Для этого расположите на форме ProgressBar из закладки "Win32". Измените у него свойство "Align" на "alBottom", чтобы он находился вдоль нижней границы формы. Снова выделите WebBrowser1 и щелкните по закладке "Events" в ОbjecInspector-е. Дважды щелкните по строке "OnProgressChange" и напишите в созданной процедуре:

procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress, ProgressMax: Integer); begin ProgressBar1.Max:=ProgressMax; ProgressBar1.Position:=Progress; end;

Здесь созданному ProgressBar1 (индикатор загрузки) присваивается максимальное значение (ProgressMax) и текущее значение (Progress).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]