Розробка клієнт-серверної програми на Delphi - Delphi - Програмні продукти

У цій статті я постараюся поділитися досвідом створення клієнт-серверних додатків з використанням стандартних компонентівIndy HTTPServer іIndy HTTPClient.

Створимо 2 проекти: MyServer.dpr та MyClient.dpr. На головну форму MyServer додамо компонентTIdHTTPServer (закладка Indy Servers) таTMemo (для відображення клієнтського запиту). Трохи відредагуємо параметри сервера:"Active=true", "DefaultPort=56001" (можна вказати будь-який інший) та"Name=MyServer". Цей компонент має подіюOnCommandGet . Переходимо до його редагування.

ЗначенняARequestInfo.Params.Text зберігає в собі ту інформацію, яка надійшла від клієнтської програми.AResponseInfo.ContentText - результат, який сервер повинен повернути. Поки не чіпатимемо його, а перейдемо до налаштування програми MyClient.

Все, що тут потрібно зробити, - покласти на форму компонентTIdHTTPClient (закладка Indy Clients). Налаштовувати в нього нічого не треба, хіба що змінимо ім'я на MyClient. Тепер переходимо до найцікавішого. Кладемо на форму звичайну кнопку і за подієюOnClick робимо таке:

В даному випадку ми просимо сервер виконати вхід до системи користувача "admin" із паролем, зашифрованим за допомогою md5.

Тепер трохи перепишемо обробку події сервераOnCommandGet таким чином, щоб при отриманні команди"userLogin" він виконував функціюUserLogin. У разі успішного її виконання клієнту повернеться результат"result_OK", інакше"result_Error".

Ось таким нехитрим способом можна створювати клієнт-серверні програми. Щоб не заплутатися в іменах параметрів, рекомендую зробити окремий unit зконстантами, який би знали і сервер, і клієнт. У наступній статті я поясню, як оптимізувати передачу даних по http і спростити їхню обробку, а також поділюся своїми компонентами, що спрощують подібну розробку.