Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2012, 13:58   #1
s_vitaly
 
Регистрация: 01.06.2010
Сообщений: 6
Сообщение Клиент + Сервер + MySQL

Доброго времени суток.
Собственно вопрос большой, требуется написать клиент-серверное приложение, сервер находится на 1 машине с базой MySQL, клиентов будет около 150. Структура такова, клиент должен авторизоваться на серверном приложении передать данные, а серверное приложение уже ложит в базу (режим авторизации очень важен), так же если на сайте отметили и данные попали в базу, сервер должен передать данные клиенту. (Не всем клиентам, а определённому по id).
Каким образом можно это реализовать за минимальное время и получить стабильную работу.
Собственно думал о таких вариантах:
1) Tclientsocket+TServerSocket + SQL.
2) использовать компоненты инди.
Но не могу приложить ума, во-первых как будет надёжней, во-вторых как реализовать авторизацию, как передавать и оперировать табличными данными через сокеты между приложениями, на клиентах будет локальная база Access работать либо через MyDAC либо через ADOConnection конечная позиция БД MySQL. Помогите пожалуйста разобраться.

З.Ы. То есть требуется 2 программы (сервер и клиент) у клиента локальная БД, а на серверном ПК уже глобальная БД, но данные должны обрабатываться серверным приложением.
s_vitaly вне форума Ответить с цитированием
Старый 27.02.2012, 17:16   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Обязательно это реализовывать на Делфи? Не лучше ли будет сделать свой WEB портал, а ядро задвинуть на PHP или Perl?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.02.2012, 07:53   #3
s_vitaly
 
Регистрация: 01.06.2010
Сообщений: 6
По умолчанию

В том и дело, что реализовать нужно именно на делфях.... причём серверная прога будет обрабатывать несколько видов приложений...
s_vitaly вне форума Ответить с цитированием
Старый 28.02.2012, 14:59   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... Тогда пожалуй лучше индейцев. Tclientsocket+TServerSocket как-то уже вышли из моды. Насчет надежности - как ты код напишешь так и будет. Да еще - Индейцы смогут просто дать возможность работать с каждым запросом в отдельном потоке, чего не умеют TServerSocket.
Цитата:
на клиентах будет локальная база Access
Зачем? Сразу запросы на сервер кидать не судьба? А потом представь какая нагрузка на сервак пойдет когда твои 150 коней одновременно двинут на сервак свои копыта.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.02.2012, 09:48   #5
s_vitaly
 
Регистрация: 01.06.2010
Сообщений: 6
По умолчанию

В локальной базе хранится локальная информация, которая не требуется серверному приложению, а хранить её нужно, так же в этой базе будут лежать временные резервы, которые требуются для синхронизации.
Если нетрудно, не могли бы привести пример механизма работы между приложениями через индейцев... отправить сообщение или написать чат это ерунда.... нормальной инфы не нашёл в нэте. Интересуют примеры авторизации между клиентской и серв. прогой, после прохождения авторизации, программы смогут обменивать данными, а уже обработав чтобы сервер общался с базой.... вопросов по работе сервер база нету...
Основной вопрос, повторюсь авторизация, и именно сам обмен как отправить данные сереверу на обработку, получаются табличные данные... напрямую в базу обратиться не проблема, но это дыра в безопасности... причём клиентское приложение за 1 раз должно передать несколько запросов (они идёт к разным таблицам в базе...) структура такая... и поменять мне её нельзя... если можно подробный пример с описанием пожалуйста, заранее благодарен....
s_vitaly вне форума Ответить с цитированием
Старый 29.02.2012, 12:28   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

s_vitaly, самый простой вариант авторизации:
На сервере хранится пароль ввиде md5 суммы.
Клиент отправляет пароль на сервер, и сервер решает "быть или не быть".

по поводу идентификации,сервер при успешной авторизации присвоит клиенту порядковый номер(отправив запрос кна клиент), и клиент, в последующем, в свои запросы вставлял свой номерр в текущей сессии с сервером(для того, чтобы серверу не приходилось гадать "кто это?").


Все делаете при помощи TidTCPServer и TidTCPClient.
Первый, сам каждому соеденению дает порядковый номер и выносит подключение в поток.

В идентификатора "порядковый номер" *геморно* использовать. На стороне клиента пускай сами создают себе номер из чего-нибудь(по железке очень не плохо будет) и высылают его вместе в кодом авторизации.
Человек_Борща вне форума Ответить с цитированием
Старый 29.02.2012, 12:43   #7
s_vitaly
 
Регистрация: 01.06.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
s_vitaly, самый простой вариант авторизации:
На сервере хранится пароль ввиде md5 суммы.
Клиент отправляет пароль на сервер, и сервер решает "быть или не быть".

по поводу идентификации,сервер при успешной авторизации присвоит клиенту порядковый номер(отправив запрос кна клиент), и клиент, в последующем, в свои запросы вставлял свой номерр в текущей сессии с сервером(для того, чтобы серверу не приходилось гадать "кто это?").


Все делаете при помощи TidTCPServer и TidTCPClient.
Первый, сам каждому соеденению дает порядковый номер и выносит подключение в поток.

В идентификатора "порядковый номер" *геморно* использовать. На стороне клиента пускай сами создают себе номер из чего-нибудь(по железке очень не плохо будет) и высылают его вместе в кодом авторизации.
С авторизацией так и есть, пароли в мд5, мне нужен именно сам механизм работы (пример) передачи данных из БД между приложениями, именно от клиента к серверу, метод или не знаю даже как сказать, по SQL запросам и тд... (как сформировать передачу данных) 1 запрос состоит из нескольких обращений к нескольким таблицам есс-но последовательно от 1 до другой, но как реализовывается это... и сколько одновременных подключений сможет обработать индеей... потому как клиентов будет уйма.... помогите примером кода с пояснением, более рациональным способом...
s_vitaly вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отправить видео захват(с веб-Кам.) Клиент->Сервер->Клиент RODNOC Мультимедиа в Delphi 17 03.10.2010 22:31
Клиент-сервер+MySQL InterBase проблемы в подключением 2 клиентов. Vohakisa Работа с сетью в Delphi 0 21.05.2010 19:28
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18
клиент-сервер MySQL jziiiiiii БД в Delphi 10 15.02.2008 12:29