我有一个大问题(抱歉我的英语不好)。 我直接附上我的代码:
public bool isServerOnline()
{
Boolean ret = false;
try
{
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(VPMacro.MacroUploader.SERVER_URL);
req.Method = "HEAD";
req.KeepAlive = false;
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
if (resp.StatusCode == HttpStatusCode.OK)
{
// HTTP = 200 - Internet connection available, server online
ret = true;
}
resp.Close();
return ret;
}
catch (WebException we)
{
// Exception - connection not available
Log.e("InternetUtils - isServerOnline - " + we.Status);
return false;
}
}
许多线程调用此函数并将HEAD请求发送到Tomcat服务器。 因此,此方法为我执行的每个请求打开一个连接,并且在10分钟内我有100个连接活动。
我如何解决这个问题?
答案 0 :(得分:1)
您可以采取两项措施来正确管理连接:
第一
初始化
HttpWebResponse resp;
在try语句之前。
然后在最终声明中关闭
finally
{
if (resp != null)
{
resp.Close();
}
}
第二:
尝试使用“using()”子句管理您的连接
using(var a = new connection())
{
//Your code
}
答案 1 :(得分:0)
Tomcat Manager显示会话,而不是活动的TCP连接。每个请求可能会启动一个新会话,但活动会话不一定表示活动的TCP连接。