Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLP 3

Запуск

Сервер (server)
cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_BENCHMARK=OFF -DBUILD_TESTING=ON ..
make
./db_exe

Клиент (client)
cd build
cmake ..
make
./lab3-client 127.0.0.1 8080

Задание

На базе данного транспортного формата описать схему протокола обмена информацией и воспользоваться существующей библиотекой по выбору для реализации модуля, обеспечивающего его функционирование. Протокол должен включать представление информации о командах создания, выборки, модификации и удаления данных в соответствии с данной формой, и результатах их выполнения.

Используя созданные в результате выполнения заданий модули, разработать в виде консольного приложения две программы: клиентскую и серверную части. Серверная часть – получающая по сети запросы и операции описанного формата и последовательно выполняющая их над файлом данных с помощью модуля из первого задания. Имя фала данных для работы получать с аргументами командной строки, создавать новый в случае его отсутствия. Клиентская часть – в цикле получающая на стандартный ввод текст команд, извлекающая из него информацию о запрашиваемой операции с помощью модуля из второго задания и пересылающая её на сервер с помощью модуля для обмена информацией, получающая ответ и выводящая его в человеко- понятном виде в стандартный вывод.

Порядок выполнения

  1. Изучить выбранную библиотеку

    • Библиотека должна обеспечивать сериализацию и десериализацию с валидацией в соответствии со схемой
    • Предпочтителен выбор библиотек, поддерживающих кодогенерацию на основе схемы
    • Библиотека может поддерживать передачу данных посредством TCP соединения
      • Иначе, использовать сетевые сокеты посредством API ОС
    • Библиотека может обеспечивать диспетчеризацию удалённых вызовов
      • Иначе, реализовать диспетчеризацию вызовов на основе информации о виде команды
  2. На основе существующей библиотеки реализовать модуль, обеспечивающий взаимодействие

    • Описать схему протокола в поддерживаемом библиотекой формате
      • Описание должно включать информацию о командах, их аргументах и результатах
      • Схема может включать дополнительные сущности (например, для итератора)
    • Подключить библиотеку к проекту и сформировать публичный интерфейс модуля с использованием встроенных или сгенерированных структур данных используемой библиотеки
      • Поддержать установление соединения, отправку команд и получение их результатов
      • Поддержать приём входящих соединений, приём команд и отправку их результатов
    • Реализовать публичный интерфейс посредством библиотеки в соответствии с п1
  3. Реализовать серверную часть в виде консольного приложения

    • В качестве аргументов командной строки приложение принимает:
      • Адрес локальной конечной точки для прослушивания входящих соединений
      • Имя файла данных, который необходимо открыть, если он существует, иначе создать
    • Работает с файлом данных посредством модуля из задания 1
    • Принимает входящие соединения и взаимодействует с клиентами посредством модуля из п2
    • Поступающая информация о запрашиваемых операциях преобразуется из структур данных модуля взаимодействия к структурам данных модуля управления данными и наоборот
  4. Реализовать клиентскую часть в виде консольного приложения

    • В качестве аргументов командной строки приложение принимает адрес конечной точки для подключения
    • Подключается к серверу и взаимодействует с ним посредством модуля из п2
    • Читает со стандартного ввода текст команд и анализирует их посредством модуля из задания 2
    • Преобразует результат разбора команды к структурам данных модуля из п2, передаёт их для обработки на сервер, возвращаемые результаты выводит в стандартный поток вывода
  5. Результаты тестирования представить в виде отчёта, в который включить:

    • В части 3 привести пример сеанса работы разработанных программ
    • В части 4 описать решение, реализованное в соответствии с пп.2-4
    • В часть 5 включить составленную схему п.2а

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages