Enviar e receber objetos

Tenho um servidor e um cliente baseado em socket. Alguem sabe que classe devo usar para enviar e receber esses objetos do pacote IO?

A resposta mais óbvia (mas não a mais certa) é usar ObjectInputStream/ObjectOutputStream. Cuidado se o socket for ficar aberto por um longo tempo e uma grande quantidade de objetos for trafegar. Provavelmente você vai ter de usar “reset” no socket de vez em quando, para limpar um cache de objetos que é criado nos dois lados da conexão.

Estou reiniciando este assunto!!Estou tentando enviar uma classe ao servidor para fazer log on de usuario!!
Mas me retorna isso:

java.io.StreamCorruptedException: invalid stream header: ACED7372

Estou usando ObjectOutputStream e ObjectInputStream!!