Salve a tutti
Vorrei chiedere un parere.
Sto scrivendo un'applicazione che dovrebbe essere in grado di passare degli oggetti da client -> server attraverso i socket.
Quindi ho pensato di usare ObjectInputStream e ObjectOutputStream.
Usando queste due classi e i relativi read/writeObject pensavo di riuscire a passare degli oggetti fatti da me, e invece..
Quando passo oggetti come String tutto fila liscio, lo stesso per i tipi primitivi: int ecc.
Ma se invio un oggetto (che implementa Serializable e che viene opportunamente convertito) non mi riceve o invia nulla.
Client
Servercodice:connection = new Socket(ip, port); toServer = new ObjectOutputStream(connection.getOutputStream()); fromServer = new ObjectInputStream(connection.getInputStream()); APacket a1 = new APacket(); APacket a2 = new APacket(); toServer.writeObject(a1); toServer.flush(); toServer.writeObject(a2); toServer.flush(); APacket r = (APacket)fromServer.readObject(); fromServer.close(); toServer.close();
Sono in due progetti diversi e per connection è un oggetto Socket.codice:toClient = new ObjectOutputStream(connection.getOutputStream()); fromClient = new ObjectInputStream(connection.getInputStream()); APacket a1 = (APacket)fromClient.readObject(); APacket a2 = (APacket)fromClient.readObject(); System.out.println(a1.test + " " + a2.test); APacket se = new APacket(); toClient.writeObject(se); toClient.flush(); toClient.close(); fromClient.close();
Classe APacket
Semplicemente non scrive niente :\.codice:import java.io.Serializable; public class APacket implements Serializable { public int test = 13; }


Rispondi quotando