title: Peer to Peer network file transfers
body: <p>I would like to implement a project that would work across the internet.</p>
  
  <p>The scenario is having some files on a server, and clients should update they're files
  from the server's folder. But i was thinking of sharing the traffic, i should implement something like peer to peer, so files could shared between clients too! Say client 1 downloaded a file from the server, client 2 and client 3 could download the file from client 1, or client 2 from server and client 3 from client 1, or they could download from both sources!</p>
  
  <p>I guess i should implement a server-client solution. But i hang on the p2p thing that i never
  used before and don't know any libraries on the subject. I have some knowledge over TCP protocol but this could serve on direct file transfer from server to client.</p>
  
  <p>I use .NET 3.5 SP1 and C#.</p>
  
  <p>Any suggestions on where to begin searching?</p>