Ho un Object su un programmino Server, questo Object (di pochissimi byte) deve essere passato al Client, il quale dovra' leggerlo adeguatamente.
Ho provato sia UDP che TCP, ho provato a convertire l'object in string, ma PERDO INFORMAZIONI sull'oggetto, quindi nisba.
Ho adottato, quindi, la soluzione di usare un ObjectOutputStream e un ObjectInputStream (entrambi bufferizzati), cioe' gli unici due stram che sembrano potersi scambiare un object. E qui un altro grosso problema, ricevo un "WriteAbortedException", cioe' il Server non riesce ad inviare l'oggetto; come risolverlo?
Di seguito il pezzo di codice incriminato, vi basti sapere che io DEVO passare l'Object senza perdita di informazioni (quindi non posso convertirlo a string o byte[], perche' perdo info sull'Object) e soprattutto in un ambiente di rete (quindi non in locale).
Si assume anche che i socket e tutto il resto siano funzionanti, quindi il problema e' proprio nell'invio dell'oggetto (troppo grande?). Come poter rendere suddividere l'invio in blocchi, che ne so, da 8 byte, senza usare i byte[]?
Server - Invio
codice:
BufferedOutputStream bos = new BufferedOutputStream(os);
ObjectOutputStream objStream = new ObjectOutputStream(bos);
objStream.writeObject(oggetto);
objStream.flush();
objStream.close();
Client - Ricezione
codice:
BufferedInputStream bis = new BufferedInputStream(is);
ObjectInputStream objStream = new ObjectInputStream(bis);
oggetto = objStream.readObject();
objStream.close();