Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тотосько_106-120.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
947.73 Кб
Скачать

Компоненти Indy

Компоненти Indy (Internet Direct) з'явилися в Delphi, починаючи з версії 7.

На жаль не всі компоненти Indy, зокрема, для створення серверних частин, доступні у версії Delphi 8 комплектації Architect, тому при створенні серверної частини програми ми скористаємося Delphi 7, а при створенні клієнтської частини - Delphi 8.

Приклад створення простого веб-сервера

В якості основи при створенні сервера візьмемо компонент TldHTTPServer. З його допомогою ми створимо не просто програмний модуль, що виконується на сервері і виконує конкретні функції начебто формування HTML-сторінок, а повноцінний HTTP-сервер, який обробляє HTTP-запити будь-якого клієнтського додатку, що підтримує протокол HTTP.

  1. Створіть новий додаток. Помістіть на форму компонент TIdHTTPServer.

  2. Властивості Bindings привласніть ІР-адресу свого комп'ютера (127.0.0.1) і порт обробки HTTP-запитів (як правило, 80).

  3. Опишіть функціональність сервера в обробнику події OnCommandGet. Ця подія генерується, коли до сервера надходить запит від клієнтського додатка. За параметри з'єднання несе відповідальність AThread, за параметри запиту - ARequestlnfo, за параметри відповіді - AResponselnfo. Код повинен виглядати наступним чином:

procedure TForml.IdHTTPServerlCommandGet (AThread:

TIdPeerThread: ARequestlnfo: TldHTTPRequestlnfo:

AResponselnfo: TIdHTTPResponselnfo); begin

Forml.IdHTTPServerl.ServeFi1e(AThread.AResponselnfo.

'С :\MyServer\root'+ARequestInfo.Document): end;

Відправка HTML-запиту реалізується методом ServeFite компонента TldHTTPServer.

  1. Залишається перевести об'єкт в активний стан у момент створення форми шляхом програмування події OnCreate форми:

procedure TForml.FormCreate(Sender: TObject): begin

Forml.IdHTTPServerl.Active:=True; end;

Для тестування додатка створимо в Delphi HTML-сторінку, на яку помістимо напис «Головна сторінка мого сервера» і невелику картинку. Нижче наведено текст тестової сторінки:

<!DOCTYPE HTML PUBLIC ”-//W3C//

DTD HTML 4.0 Transitional//EN">

<html>

<head> <title></title>

<meta name="GENERAT0R"

content="Borland HTML Designer 7.1"></head>

<body ms_positioning="gridlayout">

<p> </p>

<div style="DISPLAY: inline; Z-INDEX: 102: LEFT: 62px;

WIDTH: 211px: POSITION: absolute: TOP: 22px: HEIGHT:

42px” ms_posi ti oni ng="FIowLayout">

Головна сторінка текстового сервера </div>

<img style=”Z-INDEX: 104; LEFT: 342px; WIDTH:

187px; POSITION: absolute: TOP: 14px: HEIGHT: 139px" height=l 17 alt src=”file:///C:\photo\KoTbi\7s.jpg" width=150>

</body>

</html>

Відкомпілюємо наш проект і запустимо його (рис. 20.8).

В якості клієнтської частини використовуємо браузер Internet Explorer, в якості адреси вкажемо 127.0.0.1. Результат звертання до сервера представлений па рис. 20.9.

Рис. 20.8. Вид вікна сервера.


Приклад клієнтського додатку

За допомогою компонентів Indy в Delphi 8 можна швидко створювати клієнтські додатки для Інтернету.

Компонент TIdTCPCLient призначений для створення додатків на основі протоколу TCP, компоненти TIdP0P3 і TIdSMRT реалізують функції прийому і відправки електронної пошти.

Скористаємося готовим прикладом використання компонента IdHTTP, що входить в стандартну поставку Delphi 8 (див. каталог Borland \ Bds \ 2.0 \ Demos \ IndyNet \ HTTP \ VCLForms):

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