title: How to establish a TCP/IP connection without opening ports?
body: <p>I never figured this one out and I've been programming for years. How do P2P programs like chat programs or torrent programs manage to create connections between two peers without peers opening any ports? I know I haven't opened up a port for Skype yet I can send and receive large files to and from my friends, and I'm pretty sure all those gigabytes don't go through Skype servers. Or do they?</p>
  
  <p>What about torrenting? I can upload data to peers and I haven't opened any ports either.</p>
  
  <p>I'm pretty sure the answer will be language-nonspecific, but in case I'm wrong, I code mostly in C++. Thanks in advance.</p>