我正在尝试编写一些简单的套接字代码,其基本形式如下 -
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块时自动关闭它,但出于某种原因,它也关闭了整个套接字!因此,当我到达稍后使用相同套接字的响应代码时,会引发异常。有没有办法解决这个问题?还是我只能不使用try-with-resources(这将不理想)?