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 client: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: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(); } } }

Rispondi quotando