I would not suggest a gnutella client as a teething exercise for a new language. Pick the language you want to learn, then code up a few simple projects first. Tackling something as complicated as a gnutella client as a first project with a new language is just asking for trouble.
There are many elements to a gnutella client: user interface, library management, TCP/IP communications. Do some smaller projects that will let you learn about these things in a less hostile environment (and where your experiments won't have the chance to bring down a huge portion of the network). Then, when you've tackled the basic skills, bring these pieces of knowledge together and start on your client.
I know this wasn't the answer you were looking for, but it's the smart approach. |