farsen 0 Light Poster

Hi.
I dont know if this is the right forum to post in, but i cant find a better suited one. And i havent been able to find the information on google either.

My problem is... At the moment I have a C# application which works over the internet with 1-40 clients and one server. The clients needs informations from the server kind of often.
Because of simplicity and avoiding an upper layer protocol, Ive implemented .net remoting in my solution, so i can pass objects remotely.
But when using remoting it isnt possible to push information to the clients, instead the clients have to poll the server for information. The fact that the server cannot contact the clients, makes alot of functions tideous.
And when using ordinary sockets the server cannot contact the clients either, unless the clients configure their router/firewall they are behind, which of course I am not interested in.

So is there a way to make use of the comfortability remoting provides? And use some sort of push technology?
How does the popular IM networks like Microsofts Live Messenger works?
I mean, this must be a very common problem.

Hope you can give my some leads and insight :)

Thanks alot.