
- •Завдання дій, оброблювальних запитів клієнта
- •Компіляція і тестування створеного додатка
- •Компоненти для формування відповіді у форматі html
- •Компонент tPageProducer
- •Компоненти для роботи з базами даних
- •Компонент tDatasetPageProducer
- •Компонент tDataSetTableProducer
- •Компоненти Indy
- •Приклад створення простого веб-сервера
- •Приклад клієнтського додатку
Компоненти Indy
Компоненти Indy (Internet Direct) з'явилися в Delphi, починаючи з версії 7.
На жаль не всі компоненти Indy, зокрема, для створення серверних частин, доступні у версії Delphi 8 комплектації Architect, тому при створенні серверної частини програми ми скористаємося Delphi 7, а при створенні клієнтської частини - Delphi 8.
Приклад створення простого веб-сервера
В якості основи при створенні сервера візьмемо компонент TldHTTPServer. З його допомогою ми створимо не просто програмний модуль, що виконується на сервері і виконує конкретні функції начебто формування HTML-сторінок, а повноцінний HTTP-сервер, який обробляє HTTP-запити будь-якого клієнтського додатку, що підтримує протокол HTTP.
Створіть новий додаток. Помістіть на форму компонент TIdHTTPServer.
Властивості Bindings привласніть ІР-адресу свого комп'ютера (127.0.0.1) і порт обробки HTTP-запитів (як правило, 80).
Опишіть функціональність сервера в обробнику події 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.
Залишається перевести об'єкт в активний стан у момент створення форми шляхом програмування події 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):