клиент сервер приложение delphi

Delphi: Пишем шаблон клиент-серверного приложения

Продолжая тему разработки собственной утилиты администрирования, в данной статье я рассмотрю типовой шаблон программы клиент-сервер, на базе которой можно разрабатывать собственные клиент-серверные приложения. Данный типовой шаблон для простоты понимания и удобства применения будет рассмотрен на примере компонентов ClientSocket и ServerSocket.

Для тех, кто не в курсе, что значит клиент-серверное приложение, поясню: это комплекс программ (модулей) состоящий из двух частей — клиентской и серверной. Серверная часть является «главной»- так называемый командный пункт, на который возложена задача поддержания связи со всеми клиентами и раздача команд управления, соответствующих их функционалу (управление клиентами). Клиентская же часть является второстепенной, но не менее важной, так как является важным и связующим элементом, позволяющим выполнять удаленные команды (функции) на компьютере, на котором установлен.

>Компоненты ClientSocket и ServerSocket, которые мы будем использовать, находятся на вкладке Internet. Если на этой вкладке у Вас нет этих компонентов (а по умолчанию при установке Delphi7 они не ставятся), необходимо установить их самостоятельно (пакет dclsocketsXX.bpl). Данный пакет можно найти на установочном диске Delphi7 (или в папке «C:\Temp», куда распаковывается дистрибутив перед установкой — «C:\Temp\delphi7\install\program files\borland\delphi7\bin\») или можете его скачать отсюда. Чтобы установить данный пакет, запустите Delphi7. Зайдите в меню Component->Install Packages. В появившемся окне нажмите кнопку «Add» и укажите место, где расположен пакет dclsocketsXX.bpl. После этого жмите ОК. Компонент на месте.

Надеюсь все объяснил доступно =). А теперь приступим к делу и начнем мы с серверной части. Для этого создадим проект и скинем на форму компонент ServerSocket. В настройках компонента ServerSocket укажем следующее:
Active = false
Name = ss
Port = 4321
ServerType = stNonBlocking

А также для удобства скинем компонент Memo, в который будем выводить всякую инфу. Дадим имя компоненту log.

Далее, для компонента ServerSocket определяем метод onClientConnect, чтобы определять момент подключения клиентов. Вставим следующий код:

Источник

Создание клиент-серверного приложения в Delphi

1. Таблица первая, назовем ее First

Имя поля Тип Описание
Index_ Счетчик (ключевое) см. выше
ClientIndex Числовой(длинное целое) Поле для связи с главной таблицей
Phone Текстовый

Ну вот, как бы, с базой и все.

Программа

2.1. Приложение сервер.

Созданим новое приложение и сохраним его под именем Server в папке C:\ClientServer\Server. Добавим в приложение Remote Data Module с вкладки Multitier репозитария (Рис. 1).

Все остальное оставим без изменений. После нажатия кнопки «Ок» в проекте появится форма подобная обычному дата модулю с именем Test. Сохраним ее под именем RDMFrm.pas.

У компонентов DataSetProvider:

Свойство Значение
DataSet adotFirst и adotSecond соответственно
ResolveToDataSet True
UpdateMode upWhereKeyOnly
В опциях поднять флаги
poAutoREfresh True
poPropogateChanges True

2.2. Приложение клиент

Создадим новое приложение, и сохраним его в папке C:\ClientServer\Client под именем Client. Разместим на главной форме по два компонента ClientDataSet(обзовем их cdsFirst, cdsSecond), DataSource(обзовем их dsFirst, dsSecond), DBGrid(обзовем их dbgFirst, dbgSecond) один компонент SocetConnection.

SocetConnection

Если вы все сделали правильно, то при установке свойства Connected в True, должно запустится приложение сервер.

ClientDataSet

Свойство Значение
RemoteServer SocetConnection
ProviderName dspFirst и dspSecond соответственно
Active True
Для cdsSecond
MasterSource dsFirst
MasterFields Index_
IndexFieldNames ClientIndex

Запустим Редактор Полей (двойной клик по компоненту) и занесем туда все поля. Для компонентов ClientDataSet напишем обработчик sdsAfterPost

И подставим его на обработку события AfterPost обоих ClientDataSet’ов.

DataSource

Свойство Значение
DataSet cdsFirst и cdsSecond соответственно

DBGrid

Свойство Значение
DataSource dsFirst и dsSecond соответственно

Запустим Редактор колонок (двойной клик по компоненту) и занесем туда все поля.
Положим на форме возле Гридов по кнопке и в обработчик onClick запишем:

Все. Закрываем Делфи (для чистоты эксперимента). И запускаем приложение клиент. Если вы все сделали правильно то вы должны увидеть нечто подобное этому

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

Источник

Создание простейшего клиент-серверного приложения в Делфи

Автор: © Aleksandr Shevchuk

Раз приложение простейшее, то я решил использовать БД MS Jet 4.0 (проще говоря БД MS Access). Это решение вызвано тем что Jet (прошу не путать с MS Access) является бесплатным продуктом и поставляется вместе с MS Windows (то бишь для работы нашей программы ненужно устанавливать на компьютер клиента сам Access). Да и редактор БД очень неплохой, и ядро поддерживает кучу типов полей для удовлетворения самых извращенных желаний при хранении данных.

Читайте также:  Баптистерий что это такое в архитектуре

Ну вот, как бы, с базой и все.

2.1. Приложение сервер.

Созданим новое приложение и сохраним его под именем Server в папке C:\ClientServer\Server. Добавим в приложение Remote Data Module с вкладки Multitier репозитария (Рис. 1).

У компонентов DataSetProvider:

Свойство Значение
DataSet adotFirst и adotSecond соответственно
ResolveToDataSet True
UpdateMode upWhereKeyOnly
В опциях поднять флаги
poAutoREfresh True
poPropogateChanges True

2.2. Приложение клиент

Создадим новое приложение, и сохраним его в папке C:\ClientServer\Client под именем Client. Разместим на главной форме по два компонента ClientDataSet(обзовем их cdsFirst, cdsSecond), DataSource(обзовем их dsFirst, dsSecond), DBGrid(обзовем их dbgFirst, dbgSecond) один компонент SocetConnection.

Если вы все сделали правильно, то при установке свойства Connected в True, должно запустится приложение сервер.

ClientDataSet

Свойство Значение
RemoteServer SocetConnection
ProviderName dspFirst и dspSecond соответственно
Active True
Для cdsSecond
MasterSource dsFirst
MasterFields Index_
IndexFieldNames ClientIndex

Запустим Редактор Полей (двойной клик по компоненту) и занесем туда все поля. Для компонентов ClientDataSet напишем обработчик sdsAfterPost

И подставим его на обработку события AfterPost обоих ClientDataSet’ов.

DataSource

Свойство Значение
DataSet cdsFirst и cdsSecond соответственно

DBGrid

Свойство Значение
DataSource dsFirst и dsSecond соответственно

Все. Закрываем Делфи (для чистоты эксперимента). И запускаем приложение клиент. Если вы все сделали правильно то вы должны увидеть нечто подобное этому

Источник

Разработка клиент-серверного приложения на Delphi

В этой статье я постараюсь поделиться опытом по созданию клиент-серверных приложений с использованием стандартных компонентов Indy HTTPServer и Indy HTTPClient.

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

В данном случае мы просим сервер выполнить вход в систему пользователя «admin» с паролем, зашифрованным при помощи md5.

Вот таким нехитрым способом можно создавать клиент-серверные приложения. Чтобы не запутаться в именах параметров, рекомендую сделать отдельный unit с константами, который знали бы и сервер, и клиент. В следующей статье я объясню, как оптимизировать передачу данных по http и упростить их обработку, а также поделюсь своими компонентами, упрощающими подобную разработку.

Узнать подробнее можно здесь

Ссылки по теме

Помощь
Задать вопрос
программы
обучение
экзамены
компьютеры