Per cominciare potresti guardare i sorgenti di programmi come GAIM o aMsn (c'è anche una piccola guida al protocollo...)