Ok, the P2P chat thing works, a nice UI is left as an exercise for the interested reader, on to a next proof-of-concept.
Without doing formal coverage analysis, my gut feeling is that the P2P chat application hits most of the P2P framework. It looks like it works, so it's time to move to more interesting stuff that builds on this.
So, the next project is going to be hard. Really hard. Well... compared with the stuff I cobbled up so far. I've declared myself too stupid to do it all by myself (or too lazy, you choose) so I need your help.
The idea is to write an MCRepository backend on top of this. You create a MCP2PRepository, point to a (shadow/cache) file storage area, and from that point on everything you put there is accessible by everyone else who has added an MCP2PRepository to his/her image.
'accessible' is one thing, but managing flood searches, ensuring timely propagation, caching on intermediate nodes(?), reliable transfer of larger datagrams over the network (it *should* work in theory, right now...), a workable interface that accepts that opening such a repository will involve a lot of asynchronous updates, ...
You see, enough juicy stuff to sink your teeth into :)
I'm off to bed now. If you're interested, let it sink in, and start harassing me with questions on the current architecture if you need to have more info to solve these little puzzles.
(did I mention authentication etcetera?)
G'night,
Cees