Immaginando che tu sappia padroneggiare (come dichiari) discretamente almeno la programmazione procedurale in C++ (che poi sarebbe comunque riduttivo dato il supporto che il linguaggio offre alla OOP), quello di cui hai bisogno essenzialmente è:

1. consocenza almeno basilare di come funziona una rete di computer e di come si scrive software di rete;
2. un framework o una libreria di terze parti o specifica di sistema per la programmazone di rete perché la libreria standard C++ non prevede nulla del genere;
3. un buon motivo per farlo;

soffermati in particolare sull'ultimo punto.