Страница 1 из 1

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

Добавлено: 22 дек 2004, 01:06
SanyOk
Есть сеть из двух десятков компьютеров, я хочу, чтобы на одном компьютере (назовём его сервер) постоянно работала небольшая (или большая - это как получится) программка, а клиентская часть этой программы должна иметь возможность зная IP-адрес сервера отправлять запросы к программе-серверу и получать от неё ответы (результаты обработки запросов будут файлами различных типов).
Вопрос: с чего начать? То есть какие технологии Делфи нужно использовать, как знаая IP-адрес компьютера обратиться к программе, установленной на нём, как заставить программу следить за каким-то одним портом и брать/отсылать данные через него.
P.S. Мне не обязательны какие-то исходники, просто подскажите в каком направлении нужно начинать движение.

Добавлено: 22 дек 2004, 14:21
Naeel Maqsudov
Вопрос: с чего начать? То есть какие технологии Делфи нужно использовать
В D можно реализовать любые существующие сегодня технологии реализации клиент-серверных приложений. Поэтому начать надо с выбора технологии.
1)
Это может быть просто общение через сокетное соединение. Тогда нужно разработать оптимальный для Ваших приложений прортокол, в рамках которого они и будут общаться. А затем реализовывать этот протокол с помощью отдельных функций и/или классов. Потом уже разрабатывать приложения: серверное и клиентские. Если Вам подходят какие-нибудь стандартные протоколы работающие поверх TCP/IP, для которых уже есть реализация, то надо взять компоненты, реализующие подходящий протокол.
2)
Это может быть использование COM/DCOM или просто использование удаленного вызова процедур
3)
Возможно Вы сможете обойтись уже готовым сервером, например, каким-нибудь SQL-сервером.
4)
и т.д.

Короче все зависит отт того, какими данными будут обмениваться приложения? Какова структура этих данных? Необходима ли поддержка целостности транзакций? Необходима ли гарантированная доставка? и т.п.

Добавлено: 23 дек 2004, 12:21
cg_spooler
Хм. Я обычно сокетами пользуюсь. Для новичка это самое простое (благо куча примеров в сети).
Я сам сделал библиотечку и там и доставка и т.д. и че угодно делать можно.

Добавлено: 09 мар 2005, 15:32
Dr.Grizzly
Ну-с я делал прогу без библиотеки, ну это не важно. Моя прога по сути как троян, т.е. можно и какие-либо действия делать с оборудованием, файлами, выводить сообщения, ожидать реакцию пользователя, все это сделано очень элементарным способом. Сервер - это как бы сам троян, т.е. он будет у кого-нить на компе, Клиент - это прога которая управляет сервером. Осуществляем коннект, это можно сделать разными способами, у Сервера на примём по сокету текстового типа ну например СlientSocket1.Socket.ReceiveText стоит условие Case это выглядит так:
Case StrToInt(ClientSocket1.Socket.ReceiveText) of
1: begin
ClientSocket.socket.sendtext('1'); - это будет ответная реакция
end;
2:
...
end;
Фишка в том что пакет отосланый по сетке не засорит сеть, и не напряжет ее особо. А уже какая цифра пришла такое действие и делаем. Ну и у клиента на кнопке стоит ServerSocket1.Socket.Connections[0].SendText('1'). Вот и все, остально сам додумаешь я думаю... :)