In a pure client-server paradigm there is no a way to trigger a client to do something. A client is purely active, a server is purely passive, it only responds to request sent by a client.
To trigger a client you need to… stop calling the sides "client" and "server" :-).
Seriously, you will need
inversion of control (
http://en.wikipedia.org/wiki/Inversion_of_control[
^]). The concept close to what you need is
publisher-subscriber. A client part should connect to the service and subscribe to some class of events. A server should update its collection of clients (for example, represented by their remote sockets, in the simplest case). When some events happens in the service process, it should send notification to all the clients in the collection.
As a minimum, servicing of the publisher-subscriber requires two threads on the service part: one to listen to new connections, one to perform data exchange via network stream using some application-level protocol.
This schema can be (and usually should) be combined with "regular" client-server interaction.
Please see my skeleton of the architecture of such application:
Multple clients from same port Number[
^]. There can be different designs implementing such behavior. I tried to describe nearly the simplest possible case.
I fear to say, such work in not quite for beginners.
—SA