Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ Клиент-сервер, выбор подхода.

Автор: Andrewshkovskii 13.5.2010, 17:02

Есть следующая задача : реализовать небольшое клиент-серверное приложение.
Алгоритм работы его очень простой :
1. Пользователь запускает клиент, выбирает нек. параметры и жмакает ОК.
2. Клиент отправляет эти параметры серверу.
3. Сервер принимает эти параметры, Запрашивает из БД(sqlite) задания , отправляет клиенту набор данных(предположительно это будет map <int, QString> )
4. Клиент принимает данные(это есть его задания для тестирования). Загружает их себе в вектор и начинает с ними работать, попутно отправляя серверу свою "ответы" ( это будет 4 инта)
5. Сервер записывает в БД (sqlite) результаты ответа на каждый вопрос.

Вот основной алгоритм. Подойдет ли к начальному изучению сетевого взаимодействия примерчик с Threaded Fortune Server/client ?

Автор: kibsoft 13.5.2010, 19:14

Цитата(Andrewshkovskii @ 13.5.2010, 18:02) *
Есть следующая задача : реализовать небольшое клиент-серверное приложение.
Алгоритм работы его очень простой :
1. Пользователь запускает клиент, выбирает нек. параметры и жмакает ОК.
2. Клиент отправляет эти параметры серверу.
3. Сервер принимает эти параметры, Запрашивает из БД(sqlite) задания , отправляет клиенту набор данных(предположительно это будет map <int, QString> )
4. Клиент принимает данные(это есть его задания для тестирования). Загружает их себе в вектор и начинает с ними работать, попутно отправляя серверу свою "ответы" ( это будет 4 инта)
5. Сервер записывает в БД (sqlite) результаты ответа на каждый вопрос.

Вот основной алгоритм. Подойдет ли к начальному изучению сетевого взаимодействия примерчик с Threaded Fortune Server/client ?

Пойдет конечно :)

Автор: kwisp 17.5.2010, 16:14

Andrewshkovskii,
у меня архитектурный вопрос(уж простите если глупый).
зачем нужен сервер?
почему не обращаться из клиента в базу напрямую?

Автор: Andrewshkovskii 19.5.2010, 15:39

Ну потому что слишком жирный клиент получиться(гуи + обработка данных из бд) и т.к. БД была выбрана SQLite и необходима была определенная обработка данных (сбор. мат. статистики по данным от клиента,а в SQLite нету хранимых процедур) по-этому выбрал клиент-сервер. На стороне сервера происходит обработка данных и их последующий экспорт в БД.
Можно , конечно, было сделать все в одном , но я к таким подходам не привык + хотел получить опыт. К тому же каркас такой архитектуры мне приходиться в последующем :)
сейчас есть архитектура из :
Client :
GUI + connectionManager
Server :
сам сервер,клиентские потоки
DB query manager
Сама БД
и Интерфейс к БД.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)