private boolean updateClient( Client c )
    {
        if (c.isClosed())
        {
            listener.onClientClose( this, c, null );

            return false;
        }

        try
        {
            c.read();
            c.update();

            listener.onClientUpdate( this, c );

            if (c.isReadyToSend())
            {
                c.send();
            }

            return true;
        }
        catch (Exception e)
        {
            listener.onClientClose( this, c, e );

            c.close();

            return false;
        }
    }