A couple years ago I designed a very basic/easy software program that accessed a main (public) server and requested a 'block' of 100 IP addresses. These IP addresses were of all users currently using the software. It was a basic Peer to Peer networking system, in which the person would query each IP address for a certain file, and if found, it would send it to the user that made the request. All fine and dandy, until the person was behind a firewall. It worked on my LAN because obviously, it's easy to access 192.168.1.XX (any number) since it's all on the same network. The ONLY way it would work beyond if the person OUTSIDE the network set up port forwarding. Pretty much a pain in the butt, because the user would have to tell the router to forward any requests on port XX to 'my computer'. How does Limewire and other programs like this work without having to set up port forwarding? I figured maybe I could (when the user logs on to the system) submit to the server something like this: Main IP -->192.168.1.1 (Individual IP). But that really doesn't do anything because I can't get passed the router. Any advice is appreciated.