Ciao.
Io quando lavoravo sul net non facevo altro che costruirmi dei mini documenti XML.
Poi quando li mandavo al server, il sistema si faceva il parsing del documento dal valore ricevuto faceva una determinata azione, a quel punto il server incapsulava la sua risposta in un documento XML e rispondeva al client che faceva la stessa azione.
Diciamo di si gli strumenti sono quelli che hai detto te ( ObjectOutputStream, ObjectInputStream e i printwriter) che favoriscono il messaging client server e in rete trovi una svalangata di esempi che sono sicuro riuscirai a farli calzare a pennello per la tua applicazione.