Installation was initiated following the guidelines from Protocol Buffers Installation. Additional insights were gained from the gRPC GitHub repository.
Implemented as per the instructions provided at gRPC C++ Quickstart. Resolved installation issues by referencing grpc/grpc#24660 and addressing common errors such as the missing header file on Stack Overflow.
Transitioned to Google Test for C++ code testing, encountered compatibility issues on ARM64 as detailed in protobuf#5868 and gtest#3208. Due to these challenges, switched to the Catch2 framework for more flexible behavior-driven development (BDD), detailed on Catch2 GitHub.
brew install grpc
brew install abseil
brew install protobuf
Run make
in the project directory to compile the applications.
- Start the server with
./bin/server
. - Run the client with
./bin/main
in a separate terminal to begin data transfer.
- Test executables are located in
bin/tests
. - Modify the file path in test cases as needed for correct file transfers.
- Run
./bin/tests/client_tests
for manual tests or./bin/tests/catch_tests
for Catch2 library tests.
If you need to modify the protocol buffer definitions, rebuild them with:
protoc --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` file_exchange.proto
protoc --cpp_out=. file_exchange.proto