Salve a tutti. Ho un problema nel trasferire un pacchetto xml attraverso un socket.
Client:
dove: out è l'OutputSream del socket, tosend è il pacchetto XML in formato Document.codice:StreamResult sr = new StreamResult(out); DOMSource ds = new DOMSource(tosend); Transformer tf = TransformerFactory.newInstance().newTransformer(); tf.transform(ds, sr);
Server:
dove: request è il pacchetto ricevuto.codice:StreamSource ss = new StreamSource(connection.getInputStream()); DOMResult dr = new DOMResult(request); Transformer tf = TransformerFactory.newInstance().newTransformer(); tf.transform(ss, dr);
Il problema è che inviando così il server rimane in attesa che lo stream in ingresso si chiuda. Ma:
- Non posso chiudere "out" perché altrimenti si chiude il socket e mi serve che la connessione rimanga attiva.
- Non posso inviare un simbolo EOF perché il parser da errore e si blocca.
- Ho provato a chiudere solo un canale del socket con shutdownOutput() ma invece di chiudersi solo un canale si chiude tutto il socket!
E al momento non mi vengono in mente altre soluzioni. Qualche idea?![]()

Rispondi quotando