Assuming that, as you said, the ports are redirected correctly, you can send UDP packets to 2 clients behind the router.
Using multicast can be a good way to locate clients on your local intranet, however it does not have widespread ISP support (at least here in the UK), so you can not rely on it. Multicast is used by many device discovery platforms such as mDNS (used by Apple Bonjour)
http://en.wikipedia.org/wiki/Multicast
(It mainly works with clients who subscribe to groups, and then sends messages to this group)
I think that the best way to open new clients via the Internet is to have one server with which new clients will contact, so that he knows that they exist, then a centralized server will tell about all other clients about you. This is used, for example, in P2P games such as Modern Warfare 2, and this is what the โTrackersโ do in the BitTorrent protocol.
This is not completely decentralized, but perhaps it is easiest to implement and the most reliable.
source share