Simple, multithread-based(not thread safe), non-blocking asynchronous Client-Server classes in C++ for TCP & UDP. Creates a thread for every connection. Use mutexes or atomic variables to provide thread-safe functions.
// Initialize a tcp socket. TCPSocket tcpSocket; // Connect to the host. tcpSocket.Connect("127.0.0.1", 8888, [&] { cout << "Connected to the server successfully." << endl; // Send String: tcpSocket.Send("Hello Server!"); });Super Easy!
CPU & RAM Usages (with single tcp connection & with single udp server + client): 
Lightweight!
You can compile all the examples by just going in the examples/ directory and run make in terminal:
- Linux
- MacOS (not tested)