Buongiorno a tutti.
Ho un problema con un semplice serversocket scritto in java.
Il mio server attende connessioni su una determinata porta, una volta ricevute prende la richiesta la elabora e risponde (tutto in XML).
Il problema sta nel fatto che quando invio la risposta il client non la riceve, in quanto dopo averla inviata chiudo gli stream e il socket e questo crea problemi nella ricezione.
Come posso ovviare il problema senza far rimanere il mio thread aperto all'infinito?
Posto il codice
codice:
//prendo i buffer di scrittura e lettura
PrintWriter out = new PrintWriter(cltSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(cltSocket.getInputStream()));
//prendo la risposta
while ((inputLine = in.readLine()) != null){
if (inputLine.equals(CRLF) || inputLine.equals("")){
break;
}
}
//prendo il codice XML da restituire
sRitorno = "<html><body>Error: Request not recognized<hr>" + inputLine + "<hr></body></html>";
//lo invio
out.println(sRitorno);
System.out.println("Sto uscendo");
//chiudo i buffer
in.close();
out.close();
//chiudo il socket
cltSocket.close();
cltSocket = null;