This is a gRPC C++ bidirectional streaming example: a simple file server.
- two-way asynchronous communication
- block data transfer
- multiple processing threads (the number of threads is currently hard-coded)
- safe memory management
- managed file locking
- pending request cancellation
See schema
- A C++ compiler with C++14 support
- Protobuf
- gRPC (needs to be built from source)
At the moment only cmake
is supported.
Typical out-of-source build command sequence:
mkdir build
cd build
cmake ..
make
Server app:
./FileExchangeServer [<file> ...]
Files provided on the command line are managed by the server i.e. are available for download.
Client app:
./FileExchangeClient download|upload <file>