Learning java server technologies, trying to clarify some things. There are few technologies that allow java applications to communicate with each other.
1) Web services (REST/SOAP) over http
2) Simple POST/GET using URLConnection over http.
3) Sockets
4) RMI = Sockets + Object Serialization + Some Utilities
5) Different media servers like red5 = rtmp or rtmpt
All this technologies assume that there is a server application and client application. Client application know server address and should be initiator of call. And as far as I understand there are noway for server to push data to client, he can only send data back as response to client. And It is possible, if only they change their roles, in this case server should know client IP.
So I wondering how does network games work ? Is it possible to open connection and exchange data between server and client for all time without pulling request from client every 1-2 seconds and server would not know client IP. I’m not talking about Comet and other hacks.
Thank you