client server learning