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;