Проект реализует клиент-серверную архитектуру с двумя серверами и клиентов:
data_server— принимает данные от клиента и обрабатывает их.display_server— получает результат отdata_serverи отображает его.client- принимает ввод с клавиатуры и отправляет на обработкуdata_server
Взаимодействие между клиентом и серверами реализовано через HTTP/1.1 с использованием REST-архитектуры и передачи JSON-объектов.
Клиент отправляет POST-запрос следующего вида:
POST /process HTTP/1.1 Host: 127.0.0.1:9080 Content-Type: application/json Content-Length: 23
{"data":"Hello hello world"}
Также можно посмотреть как я делал это в видео в директории инструкция_по_применению
1-й терминал(в конце прервать через Ctrl+C):
rm -rf build && mkdir build && cd build
clear && cmake .. && make && clear
./servers/displayServer/display_server_exec 90902-й терминал:
cd build && clear
./servers/dataServer/data_server_exec 9090 90803-й терминал:
cd build && clear
./client/client_exec 127.0.0.1 9080rm -rf build && mkdir build && cd build
clear && cmake .. -DTESTING_BUILD=ON && make
./tests/full_tests- Интеграционные тесты: тестируют взаимодействие между клиентом и серверами.
- Unit-тесты: покрывают отдельные методы и функции.
Тесты написаны с использованием Google Test (GTest).
Документация сгенерирована с помощью Doxygen.
doxygen Doxyfilerm -rf build && mkdir build && cd build
clear && cmake .. -DTESTING_BUILD=ON && make
./tests/full_tests
lcov --ignore-errors inconsistent --capture --directory . --output-file coverage.info
genhtml --ignore-errors inconsistent coverage.info --output-directory coverage_report