ObjectInputStream readObject (): ClassNotFoundException

Tanto en las clases de cliente como en las de servidor, tengo exactamente la misma clase interna llamada Datos. Este objeto de datos se envía desde el servidor utilizando:

ObjectOutputStream output= new ObjectOutputStream(socket.getOutputStream());
output.writeObject(d);

(donde d es un objeto de datos)

Este objeto se recibe en el lado del cliente y se convierte en un objeto de datos:

ObjectInputStream input = new ObjectInputStream(socket.getInputStream());
Object receiveObject = input.readObject();
if (receiveObject instanceof Data){
    Data receiveData = (Data) receiveObject;
    // some code here... 
}

Estoy recibiendo unjava.lang.ClassNotFoundException: TCPServer$Data en esta lineaObject receiveObject = input.readObject();

Mi conjetura es que está intentando buscar la clase de datos en el lado del servidor y no puedo encontrarla, pero no estoy seguro ... ¿Cómo soluciono esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta