Problem with HTTP Connections
I've a big problem (sorry for my poor english). I attach directly my code:
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;
}
}
This function is invoked by a lot of thread and send HEAD requests to a Tomcat Server. So, this method open a connection for each request that I perform and within 10 minutes I've 100 connection active.
How I resolve this problem?
2 things you could do to properly manage a connection:
first:
initialize
HttpWebResponse resp;
before the try statement.
Then close in a finally statement
finally
{
if (resp != null)
{
resp.Close();
}
}
second:
Try managing your connections with the "using()" clause
using(var a = new connection())
{
//Your code
}
Tomcat Manager shows sessions, not active TCP connections. Each request might start a new session, but an active session does not necessarily indicate an active TCP connection.
精彩评论