I know that bit torrent clients use automatic port forwarding (Port forwarding with having to configure the router) so that they can connect to each other. I want the users
UPnP is your friend. It is a standardized method which allows automatically configuring routers to forward ports. There are a couple of different ways to do it. One package that supports UPnP under Java is Cling. http://4thline.org/projects/cling/