Guarda questo.
Ancora:
questo sito mi sembra abbastanza fornito.
Poi scaricati qualche sorgente (per esempio quelli di Emule sono pubblici).