The Client class store all networking information about a client
Public member functions
//Construct a new client
Client(asio::ip::udp::socket &socket, asio::ip::udp::endpoint endpoint);
//Destruct a client
~Client();
Client(const Client &client) = delete;
Client(Client &&client) = delete;
Client &operator=(const Client &client) = delete;
Client &operator=(Client &&client) = delete;
//get the client endpoint
const asio::ip::udp::endpoint &getEndpoint() const;
//get all the incomming client data before being packaged
Stream &getStreamIn();
//return an instruction and a stream if a package is avaible in _streamIn
std::pair<size_t, Stream> getNextInst();
//get the out binary buffer in preparation
Stream &getStreamOut();
//set an instruction before sending
void setInst(unsigned char inst);
//send a Stream to this client
void send(const Stream &message);
//send the Stream _streamOut with the _instOut
void send();
//check last time client exchange with the server
bool isAlive();
//update the client activity
void ping();