欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

传输大文件,求主旋律上的指导

更新时间: 2014-01-05 01:59:47 责任编辑: Author_N1

 

传输大文件,求大方向上的指导
正在做一个服务端,使用的是wcf的net.tcp,客户端使用普通的winform或者wpf.
主要问题是,服务端,我应该选择什么样的技术呢?

目前已经完成的是使用wcf,但是发现在外网上传大文件,时不时的总是timeout,
请问,在服务端上,我是应该修改为什么方式,用户的体验会好一点呢?


--参考方法--
呵呵 FTP
帮顶
--参考方法--
文件的上传和下载无外乎HTTP、FTP、P2P这三种,楼主不妨搜索一下C#的P2P实现,断点续传哦
--参考方法--
分成小块传输,首先传输文件大小,
然后服务器创建一个这么大的空文件,然后向客户端索取每一块。

如果传输失败,只要单独请求这一块就可以了。

服务器建立一个bitmap索引,表示哪些块传过了,哪些没有传,所有块都标记为传过了,就视为完成。
--参考方法--
你做的“服务端”是什么方式呢?

如果不用动脑子,那么上传文件使用 new WebClient().UploadFile(...) 这就行了,而服务器端(也就一两句话),用不着这么纠结。

如果要自己把握,那么就如#3楼说所得一样,你要具体分析程序运行通讯的时序图,要设计一个包括3、4个信令的协议集合,然后分别在服务器端和客户端实现它。这基本上是考虑到效率、需要使用socket的时候才这样设计的。
--参考方法--
引用:
引用:分成小块传输,首先传输文件大小,
然后服务器创建一个这么大的空文件,然后向客户端索取每一块。

如果传输失败,只要单独请求这一块就可以了。

服务器建立一个bitmap索引,表示哪些块传过了,哪些没有传,所有块都标记为传过了,就视为完成。
想法不错啊,但是如果我重新将客户端关闭,再打开,就不能续传了吧,您说的这个过程,只能……


事实上,在Windows操作系统中,每个程序看上去在一直执行,事实上被打开关闭了无数次——线程和进程的切换就是相当于把程序开关了很多次。

只要你在关闭程序之前记录下程序当前运行的状态(或者叫上下文),并且在下次打开的时候能恢复状态,程序就可以视作连续运行的。对你的程序来说,你的程序是状态无关的,客户端不需要从头发送数据,它只要根据服务器的请求发送特定的数据就可以了,无论它关闭与否。

就好像你用下载工具所谓“端点续传”,完全可以把程序关闭甚至电脑关闭,第二天再接着传。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:59:47
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/4240/
本文WWW.DOC100.NET DOC100.NET版权所有。