Well, I have no desire or need to learn the protocol. I just wanted something that can easily send and recieve messages. I'm working on a program for a proof-of-concept, and nothing more.
I ended up finding JabberCom, a dll that lets you communicate with the servers. I will just modify their example client for my use.
I do believe in learning the basics of things like you said though, the low level stuff, like the protocols. That's how I do all my learning...that I'm interested in

. I just don't want to spend very much time on this project because I have many many more very interesting ones that I'm working on.