title: Basic P2P chat application on the .NET framework
body: <p>I am attempting to make a chat application on the .NET framework that will be able to <strong>communicate over the internet</strong> and <strong>not</strong> just LAN. I would like it to be <strong>P2P</strong> as to not require a central server. I don't mind which protocol it uses (UDP, TCP, etc) so long as I can send messages to almost any given IP.</p>
  
  <p>All I would like to know is how to send data to another IP I know of, nothing else. I've searched around but the code is too complicated for me. (For example I've looked at the source code for torrent clients).</p>
  
  <p>Help will be appreciated a lot thanks.</p>
  
  <p><strong>P.S.:</strong> I've heard about a method called UDP hole-punching if that sparks any plugs.</p>