再见西城 发表于 2015-1-18 11:16:06

ASP.NET网页编程之asp.net 可否多线程断点续传?仓酷云

数据挖掘有点高深的,主要估计就是使用一些算法提取一些实用的数据。学好数据挖掘的话可以应聘baidu或者google,但是一般人家对算法的要求听高的。你最好还是学点应用型的吧。这种主要是研究型的。在博客园上一搜就能够找到良多关于“asp.net多线程断点续传”这方面的文章,如
http://zzk.cnblogs.com/s?w=asp.net+%e5%a4%9a%e7%ba%bf%e7%a8%8b%e6%96%ad%e7%82%b9%e7%bb%ad%e4%bc%a0&p=1
可是经由我测试,没有一个是真正有用的。
在这篇文章中(http://www.ckuyun.com/bestcomy/archive/2004/08/10/31950.html)我2007年就留言:(37楼),成绩到如今还没有办理。
利用以下办法测试:
1、vs2010间接启用调试。
2、把代码编译到release版本,.NET2.0、.NET4.0都有,分离公布到win2003+iis6、win2008+iis7中。
3、然后用下载软件(如收集传送带、收集蚂蚁、迅雷等)会见这个供应下载的网址,下载软件开10个义务,每一个义务10线程,每一个义务下载限速50K摆布。
了局形成asp.net给间接挂起了!实验会见任何aspx的页面则一向处于挂起形态,即页面没法翻开,IE9选项卡的谁人形态标记一向在转。
一入手下手觉得是测试体系IE9到达最年夜链接数了(可是开其他第三方网站是能够的),即刻在其他电脑会见也不可,形态一向挂起,乃至影响到这台服务器上的其他网站,只需是aspx的全体逝世失落,静态的又能够一般会见(jpg、css、js等文件),服务器的cpu和内存不占几,几近可疏忽,下载软件中断下载后又恢复了!其实是想不出甚么好办法了。
再次附上我的代码,和在博客园搜到文章上的差未几:


protectedvoidPage_Load(objectsender,EventArgse){stringq=Request.QueryString.Get("q");System.IO.FileInfof=newSystem.IO.FileInfo(Server.MapPath("/")+q);intspeed=5000;//5KFileStreamfile=newFileStream(f.FullName,FileMode.Open,FileAccess.Read,FileShare.Read);BinaryReaderbr=newBinaryReader(file);Response.AddHeader("Accept-Ranges","bytes");Response.Buffer=false;longfileLength=file.Length;longstartBytes=0;intbuff=10240;//每线程10Kbytesintsleep=1000*buff/speed;if(Request.Headers["Range"]!=null){Response.StatusCode=206;string[]range=Request.Headers["Range"].Split(newchar[]{=,-});startBytes=Convert.ToInt64(range);}//增加头信息,指定文件巨细,让扫瞄器可以显现下载进度Response.AddHeader("Content-Length",(fileLength-startBytes).ToString());if(startBytes!=0){//撑持多线程,文件分段处置Response.AddHeader("Content-Range",string.Format("bytes{0}-{1}/{2}",startBytes,fileLength-1,fileLength));}//坚持链接Response.AddHeader("Connection","Keep-Alive");//设置输入流数据范例。增加头信息,为"文件下载/另存为"对话框指定默许文件名Response.ContentType="application/octet-stream";Response.AddHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(f.Name,System.Text.Encoding.UTF8));//界说流的地位br.BaseStream.Seek(startBytes,SeekOrigin.Begin);longdataSent=fileLength-startBytes;longdataLeft=0;while(dataLeft<dataSent){if(Response.IsClientConnected){Response.BinaryWrite(br.ReadBytes(buff));dataLeft+=buff;Response.Flush();Thread.Sleep(sleep);}else{dataSent=-1;}}Response.End();br.Close();file.Close();}

前天傍晚我发表了《net网页编程的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。

海妖 发表于 2015-1-25 20:54:38

主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。

深爱那片海 发表于 2015-1-29 15:29:15

Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!

爱飞 发表于 2015-2-2 12:44:41

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

只想知道 发表于 2015-2-2 22:05:59

如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。

兰色精灵 发表于 2015-2-5 14:45:58

在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。

再现理想 发表于 2015-2-8 20:59:15

市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。

小妖女 发表于 2015-2-9 21:12:52

HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.

莫相离 发表于 2015-2-26 19:17:45

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。

飘飘悠悠 发表于 2015-2-26 21:40:59

我的意思是.net好用,从功能上来说比JAVA强还是很明显的。

因胸联盟 发表于 2015-3-7 00:53:25

使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

若相依 发表于 2015-3-13 00:07:58

现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。

若天明 发表于 2015-3-13 00:08:27

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。

再见西城 发表于 2015-3-20 06:34:33

微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
页: [1]
查看完整版本: ASP.NET网页编程之asp.net 可否多线程断点续传?仓酷云