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