O programa solicita a conexão e não envia dados

esta a gerar este erro:

debug:
Estabelecar conexão…
Conexão estabelecida…
Enviar mensagem…
Mensagem enviada.
Resposta do servidorclient.RegistosOperacao@1fa121e2
Mensagem :
OK
Erro: Software caused connection abort: socket write error

public class Client {

public static void main(String[] args) {
    try {
        /*
        1. Estabelecer uma conexao com o servidor
        2. trocar mensagem com o servidor
         */
        //criar a conexao entre o cliente e o servidor
        System.out.println("Estabelecar conexão.......");
        Socket socket = new Socket("localhost", 5555);
        System.out.println("Conexão estabelecida.......");
        //criação dos strem de entrada e saida

        ObjectOutputStream output = new ObjectOutputStream(socket.getOutputStream());
        ObjectInputStream input = new ObjectInputStream(socket.getInputStream());

        System.out.println("Enviar mensagem......");

        List<RegistosOperacao> listaDeRegisto = new ArrayList<>();

        BuscaDeRegistos b = new BuscaDeRegistos();
        listaDeRegisto = b.Pesquisa();
        RegistosOperacao r = new RegistosOperacao();
        r.setOperacao("Conectar");
        r.setTimeStampNew(Date.valueOf(LocalDate.MAX));
        r.setTimeStampOld(Date.valueOf(LocalDate.MAX));
        output.writeObject(r);
        output.flush();
      

        System.out.println("Mensagem enviada.");

        r = (RegistosOperacao) input.readObject();

        System.out.println("Resposta do servidor" + r);
       
        if (r.getOperacao().equalsIgnoreCase("OK")) {
            System.out.println("Mensagem :\n" + r.getOperacao());

            output.writeObject(r);
            output.flush();

        } else {

            System.out.println("Erro :" + r.getOperacao());

        }
        input.close();
        output.close();
        socket.close();

    } catch (Exception ex) {
        System.out.println("Erro: " + ex.getMessage());

    }
}

}