我在这里看到的几个答案中,为了重用连接,我需要关闭inputstream和outputstream。 在关闭流之前,我看到太多的CLOSE_WAIT连接。 但是现在,在基本响应的情况下(例如找不到404文件) 我正在以这种方式处理响应
public static void handleIOError(URLConnection conn)
{
InputStream es = null;
HttpURLConnection urlConn = null;
if (conn instanceof HttpURLConnection)
{
urlConn = (HttpURLConnection)conn;
es = urlConn.getErrorStream();
}
if (es != null)
{
try
{
while (es.read() > -1) {}
}
catch (IOException e)
{
logger.error("Unable to close input stream", e);
}
finally
{
IOUtils.closeQuietly(es);
}
}
}
所以我要关闭输入流,但是仍然有多个CLOSE_WAIT
连接。我猜我没有关闭套接字流,但是哪一个呢?如您所知,如果发生错误,我将无法urlConn.getInputStream()
我的服务器是tomcat 8。
任何想法如何解决套接字泄漏?