I am student currently working on a networking project on java for my college. My college's network uses static IP addressing and all computers connected to network use 10.x.x.x or 172.x.x.x family. If I set up a server using one of the following address(say 10.10.2.8) and if there was a wifi router connected another ip address(say 10.10.2.9), how do I initiate a communication from the server to a user connected to the wifi router(the router uses dhcp for ip allocation in the wifi network) (10.10.2.8 to 10.10.2.9). I know that its easy to start communication from the user to the server by just typing in the ip address(10.10.2.8) but I want to know if the reverse is possible. I am currently using java socket programming for the networking.
Since you are using Client-Server architecture, requests always come from the client. The server has no way of knowing to which IP address to connect to and therefor has no way to initiate the connection.
Also generally clients have no way to process such requests, since they are not listening on any port by default (meaning they do not have any process running, that checks for example port 80 for HTTP requests).
For more on client-server architecture see https://en.wikipedia.org/wiki/Client%E2%80%93server_model
In other network architectures like peer-to-peer (https://en.wikipedia.org/wiki/Peer-to-peer) each node is serving as both client for connecting to other nodes and server for other nodes connecting to it. Hence each node is running some kind of 'server' process.