Консольное приложение, которое демонстрирует возможность добавления промежуточного шлюза (gateway) между клиентом и сервером с помощью gRPC в C++17. Клиент отправляет сообщения → шлюз их принимает и пересылает → сервер их получает и выводит в консоль.
Рис. 2 — Запущенный шлюз Gateway.
|
Рис. 3 — Запущенный клиент.
|
cpp-grpc-gateway/
├── client/ ← клиент
│ ├── main.cpp
│ ├── ClientImpl.*
├── gateway/ ← шлюз Gateway
│ ├── main.cpp
│ ├── GatewayImpl.*
├── server/ ← сервер
│ ├── main.cpp
│ ├── ServerImpl.*
├── proto/ ← .proto файл
│ └── chat.proto
├── CMakeLists.txt
└── README.md
- C++17
- CMake 3.16+
- gRPC
- Установка с помощью vcpkg
.\vcpkg.exe install protobuf protobuf:x64-windows
.\vcpkg.exe install grpc:x64-windows
.\vcpkg integrate install- Сборка проекта
Требуется указать свой путь к
-DCMAKE_TOOLCHAIN_FILE. ВместоReleaseможно указатьDebug.
mkdir build && cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE:UNINITIALIZED=C:/.dev/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build . --config Release-
Запуск
-
Вариант 1: Запусть собранный
cpp-grpc-gateway.exe. После этого на экране появятся 3 консольных окна:server.exe,gateway.exe,client.exe. -
Вариант 2: Запустить сначала
server.exe, затемgateway.exe, в последнюю очередьclient.exe.
-
После запуска в окне сервера указать адрес и порт шлюза Gateway. После этого в окне клиента указать адрес и порт шлюза Gateway. Можно отдельно запускать новых клиентов через client.exe, их может быть неограниченное количество.


