Every single p2p program I know of uses some kind of server to initiate protocol (like trackers in bittorrent), most of the time the servers are a different entity from the peers that will end up sharing the information.
Even in VoIP calls, each peer know only the address of the proxy server they are registered to and this servers are the ones that initiate communications.
In you specific case, it could be possible to use UDP and send messages to a specific port, however each peer need to fully know the other peer, and that will limit you application.
I believe that using a server that is not either peer should solve a lot of problems, but I don't know if it is possible.
|