I'm asking this question here since I think people on this forum probably have the best knowledge of firewalls and routers.
Say I'm designing a multi-player game and I want to push data to the client spontaneously. Since it's probably more efficient and puts less load on the server than clients constantly polling the server to check for changes.
From my understanding, most computers today have firewalls and a lot of home computers are also behind a router, so if you just send packets it will probably be blocked especially since the router won't know which PC to route the packet to.
What are good ways to push data without being blocked?
In what situations do firewalls allow packets through on PCs with default configurations?
and how will the router know which PC to route the packet to?
I hope this question isn't too big, I think the questions I asked are all related otherwise I'll delete the last question about the router since it might be less related.
EDIT: I say spontaneously sending packets but I mean only after the user has logged in to the game and sent his IP.
EDIT 2: (Answers to comment)
The game is over the internet.
How many traffic - initially it will have maybe a hundred concurrent users but should be scalable for several hundreds, but I'd still like to hear solutions for both cases because I might decide to have more servers if it changes the answer.
Latency - should be as low as possible (Real time game).