关于ServicePointManager的ConnectionLimit设置问题
同一个服务器的WebRequest最大连接数可以通过ServicePointManager的对应uri对象的属性ConnectionLimit进行修改,比如
Uri = new Uri("http://localhost");
ServicePoint spSite = ServicePointManager.FindServicePoint(uri);
spSite.ConnectionLimit = 4;
但是ServicePointManager.DefaultPersistentConnectionLimit和ServicePointManager.DefaultNonPersistentConncetionLimit都是常量,无法修改
那样修改了spSite.ConnectionLimit对于实际的WebRequest最大连接数会有作用吗?我想模拟多线程下载,所以建立了对同一url的多个连接,并且对应的Response数据流都没有关闭。我用如下代码进行测试,发现到了第三个连接还是没法响应,这是为什么呢?请高人指点指点
string theUrl = "http://localhost/real.rar";
Uri uri = new Uri(theUrl);
ServicePoint spSite = ServicePointManager.FindServicePoint(uri);
spSite.ConnectionLimit = 4;
Console.WriteLine("Current Connection: "+spSite.CurrentConnections);
Console.WriteLine("Conncetion limit: "+spSite.ConnectionLimit);
//test 1
HttpWebRequest requestTest1 = (HttpWebRequest)HttpWebRequest.Create(theUrl);
requestTest1.KeepAlive = false;
requestTest1.AddRange(0,65534);
Stream nsTest0 = requestTest1.GetResponse().GetResponseStream();
Console.WriteLine("Test 1 passed.");
//test 2
HttpWebRequest requestTest2 = (HttpWebRequest)HttpWebRequest.Create(theUrl);
requestTest2.KeepAlive = false;
requestTest2.AddRange(65535,2442228);
Stream nsTest1 = requestTest2.GetResponse().GetResponseStream();
Console.WriteLine("Test 2 passed.");
Console.WriteLine("Current Connection: "+spSite.CurrentConnections);
//test 3
HttpWebRequest requestTest3 = (HttpWebRequest)HttpWebRequest.Create(theUrl);
requestTest3.KeepAlive = false;
requestTest1.AddRange(2442229,4884458);
Stream nsTest2 = requestTest3.GetResponse().GetResponseStream();
Console.WriteLine("Test 3 passed.");
问题点数:0、回复次数:6Top
1 楼winxieddd(一剑飘香)回复于 2004-08-01 15:17:31 得分 0
upTop
2 楼kennylanse(永恒之风)回复于 2004-08-01 17:05:53 得分 0
假如用WebClient实现断点续传,在将Range加入http报头的时候应该怎样做?Top
3 楼kennylanse(永恒之风)回复于 2004-08-01 21:23:55 得分 0
到网上查了一下,好像用WebClient也会出现相同的问题。不知道该怎么解决了?难道要用直接用TCP连接?Top
4 楼kennylanse(永恒之风)回复于 2004-08-03 08:57:13 得分 0
顶啊!高手们相助啊……Top
5 楼nebulastorm(阿瞬)回复于 2004-08-16 21:28:01 得分 0
楼主的代码我试过可以通过,但是连接到本机以外的服务器会有问题,原因未知。
知道的说一下,顺便帮楼主顶一下。Top
6 楼bj_dragon(北京真大啊)回复于 2005-07-18 19:10:24 得分 0
dingTop




