Strictly speaking, as soon as you say "control client from server", all this immediately goes beyond the client-server paradigm, at least in the narrow sense of this turn. I really appreciate it come to this idea as the "pure" client-server architecture is very limiting or entailing (always ineffective) polling for many applications.
It is related to the idea of
inversion of control
, see
http://en.wikipedia.org/wiki/Inversion_of_control[
^]. Please also see the very useful references on the bottom of this document, such as
Observer pattern (
http://en.wikipedia.org/wiki/Observer_pattern[
^]),
Pulisher/Subscriber (
http://en.wikipedia.org/wiki/Publish/subscribe[
^]) and more.
As you don't share what kind of control and work flow you're thinking of, I can only suggest you some ideas from my past answer on a similar topic:
Multple clients from same port Number[
^].
—SA