Ho incrociato la creazione degli stream, messo nel while l'istanziamento dell'array e fatto il flush ad ogni stampa; ma mi dà sempre lo stesso problema e non capisco il perchè.

Codice server:
codice:
public class ServerEsercizio1Mod1 {    
    static Logger logger = Logger.getLogger("global");
    
    public static void main(String[] args) {
    
        try {
            ServerSocket serverSocket = new ServerSocket(9000);
            logger.info("Socket instanziato, accetto connessioni...");
            Socket socket = serverSocket.accept();
            logger.info("Accettata una connessione... attendo comandi.");
            ObjectOutputStream outStream = new ObjectOutputStream(socket.getOutputStream());
            ObjectInputStream inStream = new ObjectInputStream(socket.getInputStream());
            int[] xy;
            while(true) {
                xy = (int[]) inStream.readObject();
                logger.info("Ricevuta la coppia di interi");
                int somma = xy[0] + xy[1];
                outStream.writeObject(somma);
                outStream.flush();
            }
        } catch (EOFException e) {
            logger.severe("Problemi con la connessione:" + e.getMessage());
            e.printStackTrace();
        } catch (Throwable t) {
            logger.severe("Lancatia Throwable:" + t.getMessage());
            t.printStackTrace();
        }
    }


}
Codice client:
codice:
public class ClientEsercizio1 {    
    static Logger logger = Logger.getLogger("global");
    
    public static void main(String[] args) {
    
        try {
            Socket socket = new Socket("localhost",9000);
            ObjectInputStream inStream = new ObjectInputStream(socket.getInputStream());
            ObjectOutputStream outStream = new ObjectOutputStream(socket.getOutputStream());
            Scanner in = new Scanner(System.in);
            while(true) {
                int[] xy = new int[2];
                xy[0] = in.nextInt();
                xy[1] = in.nextInt();
                outStream.writeObject(xy);
                outStream.flush();
                System.out.println(inStream.readObject());
            }
        } catch (EOFException e) {
            logger.severe("Problemi con la connessione:" + e.getMessage());
            e.printStackTrace();
        } catch (Throwable t) {
            logger.severe("Lanciata Throwable:" + t.getMessage());
            t.printStackTrace();
        }
    }


}