File transfer application using a custom protocol.
This project is divided into four different parts:
- The 'Storage' application
- The 'Master' application
- The 'Client' application
- The 'Tools' library
The library implements functions for the MP2P protocol. It is using boost:asio for the networking part.
All the apps are using the 'tools' library for network communications and file manipulations.
The project uses Couchbase as a Master-Master replication database system.
We provide some *.conf.example files in the config folder, you can configure them to set up your own settings.
The Master application
mkdir -p build && cd build; cmake ..; make master-release -j;
The Storage application
mkdir -p build && cd build; cmake ..; make storage-release -j;
The Client application
mkdir -p build && cd build; cmake ..; make client-release -j;
- C++ >= 14
- Boost >= 1.55
- OpenSSL >= 1.0
- libcouchbase == 2.4.8
The Master application is there to make a connection between all the clients and the storage. It will be making constant database updates/checks in order to ensure the integrity of the transfers.
The Storage application is there to listen for packets and send/receive files.
It listens both for ipv4 & ipv6 connections (see http://stackoverflow.com/a/1618259).
We are using the Catch unit test framework.
make check will launch the unit tests.
How to configure .vimrc with Syntastic so that it detects header locations?
In the src/ folder you will find a .syntastic_cpp_config file containing compile FLAGS. Here is what you have to add in your .vimrc config file to handle this configuration:
let g:syntastic_check_on_open = 1 let g:syntastic_cpp_check_header = 1 let g:syntastic_cpp_compiler = 'clang' let g:syntastic_cpp_config_file = '.syntastic_cpp_config'