Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SQLite и Сеть
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
512es
Всем привет!

Есть задача синхронизации 2-х баз через интернет.
В основном атомарные селекты, построчно. Через ооочень плохой интернет.
Список строк, которые нужно обновить, получаю сравнением таблиц хешей в базах.
Собираюсь писать клиент и сервер.


Как лучше пересылать строки таблиц?

Знаю несколько вариантов:
1) QTcpServer + QDataStream (свой протокол)
2) QTcpServer + QtXml
3) RPC (QxtXmlRpc или qxmlrpc)
4) QHttp (get. post)

В целом, последовательность действий будет такова:
1) Запрос, 1 строка переменной длинны (удастся ли обойтись без QSqlQuery::prepare() ??)
2) Ответ, 1 строка таблицы переменной длинны и количества столбов или result

Кроме того, в пакеты собираюсь встраивать хеш, чтобы исключить 99.9% ошибок. А так же, сжимать их посильнее (zlib или арифметическим кодированием). Ну и ssl тоже не помешал бы..)

Вообще, в QDataStream можно легко построить нужный пакет и залить в него строку.
Но придумывать протокол лениво немного))
С другой стороны, в чужом коде копаться тоже не охота..
А с хмлом, честно сказать, как следует знаком не был.

В целом, задумка попахивает попыткой написания сервера склайта. Отправлять запросы, принимать строки таблиц. Упор на проверку ошибок пакетов.

Сейчас использую вместо второй базы Postgres. Вообщем то работает, но от жуткого инета иногда зависает клиентская программа( Думается мне, что не по назначению юзаю постгрес..

Посоветуйте что нибудь.)
Если можно, с простенькими примерами, дабы сравнить способы.
silver47
Использую "1) QTcpServer + QDataStream (свой протокол)". Немного не устраивает скорость передачи. На получение таблицы из 100 записей уходит приличное ко-во времени (порядка 5 секунд).
Алексей1153
silver47, а объём памяти, занятой теми записями, какой?
Алексей1153
вариант QTcpServer + QtXml тоже хорош в плане гибкости. А сам XML перед пересылкой можно хорошо пожать зипом
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.