title: Python chat p2p system over internet
body: <p>I want to build a peer to peer chat engine that runs over the Internet.  So far my code works on a local network but not further.  This is due to the fact that listening on sockets using python <code>sockets</code> does not make them available outside of the LAN.</p>
  
  <p>It is acceptable for IPs to be shared knowledge, ie it is ok for the other person to need to know my IP address (and a port on which I am listening) to connect to me.</p>
  
  <p>How does one tell the router to open a socket to the outside world?  Presumably this can be done as p2p software such as BitTorrent must do it for communication between clients. </p>