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

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

Ответить
SanyOk
Сообщения: 1
Зарегистрирован: 22 дек 2004, 00:48

22 дек 2004, 01:06

Есть сеть из двух десятков компьютеров, я хочу, чтобы на одном компьютере (назовём его сервер) постоянно работала небольшая (или большая - это как получится) программка, а клиентская часть этой программы должна иметь возможность зная IP-адрес сервера отправлять запросы к программе-серверу и получать от неё ответы (результаты обработки запросов будут файлами различных типов).
Вопрос: с чего начать? То есть какие технологии Делфи нужно использовать, как знаая IP-адрес компьютера обратиться к программе, установленной на нём, как заставить программу следить за каким-то одним портом и брать/отсылать данные через него.
P.S. Мне не обязательны какие-то исходники, просто подскажите в каком направлении нужно начинать движение.
Хочу я так на свете жить, как Вождь великий жил. И в армии я так хочу служить, как Ленин в ней служил.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

22 дек 2004, 14:21

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

Короче все зависит отт того, какими данными будут обмениваться приложения? Какова структура этих данных? Необходима ли поддержка целостности транзакций? Необходима ли гарантированная доставка? и т.п.
cg_spooler
Сообщения: 4
Зарегистрирован: 22 дек 2004, 10:48
Контактная информация:

23 дек 2004, 12:21

Хм. Я обычно сокетами пользуюсь. Для новичка это самое простое (благо куча примеров в сети).
Я сам сделал библиотечку и там и доставка и т.д. и че угодно делать можно.
--=[cg_spooler]=--
Dr.Grizzly
Сообщения: 50
Зарегистрирован: 09 мар 2005, 13:57
Контактная информация:

09 мар 2005, 15:32

Ну-с я делал прогу без библиотеки, ну это не важно. Моя прога по сути как троян, т.е. можно и какие-либо действия делать с оборудованием, файлами, выводить сообщения, ожидать реакцию пользователя, все это сделано очень элементарным способом. Сервер - это как бы сам троян, т.е. он будет у кого-нить на компе, Клиент - это прога которая управляет сервером. Осуществляем коннект, это можно сделать разными способами, у Сервера на примём по сокету текстового типа ну например С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'). Вот и все, остально сам додумаешь я думаю... :)
Ответить