Generic Peer 2 Peer network written in C++