Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Синхронизация данных между клиентами


Автор: transserg 9.2.2012, 17:32
Доброго вечера всем. прошу совета по реализации такой программы.
Будет простая бд на sqlite(в будущем может заменится на что то другое). приложение написанное с использование Qt для работы с этой бд. загвоздка заключается в следующем. это приложение будет работать на несольких пк находящихся в сети(машины разносортные системы на них тоже) нужно как то организовать синхронизацию этой бд между пользователями.
была идея по сокетам соеденить всех клиентов между собой и при иземенении данных оповещать соседей. есть ли для этого более верные подходы? 
использовать рбд типа mysql не рационально ибо компов всего 3. 
запостил в общее так как тут и бд и сети.

Автор: newbee 9.2.2012, 17:49
А тут и mysql не поможет, если я правильно поняла проблему: несколько клиентов показывают и модифицируют данные в одной базе, при изменении данных через одну программу, остальные клиенты должны тут же об этом узнать. Это делается так: пишется программа-сервер и только она одна работает с этой базой. Клиенты подключаются к этому серверу и посылают запросы через него. Когда клиент посылает запрос на модификацию данных, сервер пинает остальных клиентов и сообщает им об изменениях.

Автор: transserg 9.2.2012, 18:04
нет. =) база у каждого клиента своя. но на всех клиентах нужно сделать чтоб данные были идентичны. один изменил у себя. остальные подтянули с него изменения.

Автор: tzirechnoy 9.2.2012, 18:53
Цитата
>нет. =) база у каждого клиента своя. но на всех клиентах нужно сделать
> чтоб данные были идентичны.


А смысл?
Ну, то есть, теоретически, можэт быть... Но если Вы дажэ не знаете с какой стороны к этой задаче подойти -- это как человеку, который до этого ползал только в Москве на скалодроме, переться на К-2.
Положыте один файл на каком-нибудь файл-сервере, чтобы все им пользовались (или запустите mysql/postgres/firebird). sqlite вполне работает при наличии файловых блокировок.

Автор: xvr 10.2.2012, 09:23
Цитата(transserg @  9.2.2012,  18:04 Найти цитируемый пост)
база у каждого клиента своя. но на всех клиентах нужно сделать чтоб данные были идентичны. 

Гм, вспоминается анекдот про 'стоя и в гаммаке'

Цитата(transserg @  9.2.2012,  18:04 Найти цитируемый пост)
один изменил у себя. остальные подтянули с него изменения. 

А если двое изменят одни и те же данные одновременно? Что будете делать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)