私は次の基本的な形式を持ついくつかの単純なソケットコードを書き込もうとしています-
try(BufferedReader request = new BufferedReader(new InputStreamReader(sock.getInputStream()))){
//Do some work...
}
//BufferedReader gets closed, but also makes the socket close
...
...
response.write(blah);//Causes exception because socket is closed
私の問題は、ソケットが閉じられていることですが、そうあるべきではないと思います。try-with-resourcesはBufferedReaderを作成し、tryブロックを離れると自動的に閉じますが、何らかの理由でソケット全体も閉じます。したがって、後で同じソケットを使用する応答コードに到達すると、例外が発生します。これを修正する方法はありますか?または、リソースを試してみる必要はありませんか(理想的とは言えません)?