У меня есть приложение, которое подключается к базе данных и может использоваться в многопользовательском режиме, в результате чего несколько компьютеров могут подключаться к одному и тому же серверу базы данных для просмотра и изменения данных. Один из клиентов всегда назначается «главным» клиентом. Этот мастер также получает текстовую информацию от входа RS232 или UDP и каждую секунду регистрирует эти данные в текстовом файле на локальном компьютере.
Моя проблема заключается в том, что другим клиентам необходим доступ к этим данным из главного клиента. Мне просто интересно, как лучше и эффективнее решить эту проблему. Я рассматриваю два варианта:
- Создать класс синхронизации папки для синхронизации папки на удаленном (главном) компьютере с папкой на локальном (клиентском) компьютере. Это будет подпрограмма копирования потокового буферизованного файла.
- Реализуйте клиент / сервер, чтобы главный компьютер мог передавать эти данные любому клиенту, который подключается и запрашивает данные. Мастер отправит файл через TCP / UDP запрашивающему клиенту.
Решение должно учитывать следующее:
а. Файлы журнала записываются каждую секунду. Следует избегать любых потенциальных проблем с блокировкой файлов.
б. Процедура копирования должна копировать только те файлы, которые были изменены позднее, чем те, которые уже есть на клиентском компьютере.
с. Будь максимально эффективным
д. Все машины находятся в локальной сети
е. Синхронизация должна выполняться только, скажем, каждые 10 минут или около того.
е. Объем данных составляет только порядка 50 МБ, но после завершения начальной (первой) синхронизации объем передаваемых данных будет порядка 1 МБ. Это увеличится в будущем
Какой метод лучше использовать? Какие плюсы / минусы? Я также видел пост Fast File Copy , который я собираюсь использовать.