java编写的msrp通信,发送文件时怎样实现断点续传

https://github.com/MSRP-OSS/msrp-java
最近公司做的通信项目需要使用到这个框架,是github上的一个开源项目,但是在发送文件时的断点续传问题上没有得到解决,希望有使用过这个的大佬指点下

1个回答

看下这个论文 http://www.cnki.com.cn/Article/CJFDTotal-WXDG201805004.htm
无非就是通讯的一方能够报告给对方文件的总长度,并且支持从偏移量x处返回y个字节给另一方
而另一方则可以先根据文件长度创建整个文件,再分块请求文件的部分数据,另外需要一个mask数组保存哪些块已经传输了。等所有的块都写完,就传完了。
如果中间断了,根据mask数组得到没有传输完的块,依次传输。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
msrp文件源码
在win32,msrp协议:文件传输,基于sip
Java实现文件的断点续传(HTTP)
java实现文件断点续传
java实现文件的断点续传的下载
java的断点续传是基于之前java文件下载基础上的功能拓展 首先设置一个以线程ID为名的下载进度文件, 每一次下载的进度会保存在这个文件中,下一次下载的时候,会根据进度文件里面的内容来判断下载的进度。 package com.ldw.multilthreaddownload; import java.io.BufferedReader; import java.io.File;
怎样实现上载断点续传?
怎样实现上载断点续传?
怎样实现FTP的断点续传
哪位大哥知道怎样实现FTP的断点续传,请赐教
Asp.net怎样实现断点续传
在文件下载时,我想使用断点续传,实现将上次未下载完成的文件继续下载。代码如何实现次功能?
怎样实现断点续传?
我要用于传送文件,打个比方,我在传送一个文件途中,如果和对方失去连接(不管是意外中断还是有计划中断),都在当前文件尾上加个记号,下次连接时再打开这个文件,检测到有这个记号就从记号前一个字节开始传送,是否可行?如果可行能否给个例子?
怎样实现断点续传功能?
我以前使用BEA WegLogic 7服务器,现在用Sun ONE Application Server,但是如何才能使该服务器支持断点续传功能呢?rnrn为什么我在IE里直接点击可以下载文件(.zip, .rar等),而不能用FlashGet进行下载呢?(在我机器上无论是jsp动态生成的链接还是静态链接都是如此)
msrp协议规范
包括MSRP协议规范RFC4975,很适合想学习msrp协议的人员,欢迎下载
文件断点续传原理与实现
在网络状况不好的情况下,对于文件的传输,我们希望能够支持可以每次传部分数据。断点续传其实正如字面意思,就是在下载的断开点继续开始传输,不用再从头开始。
stream+springmvc实现文件断点续传
手上有个文件上传的需求,并且要支持断点续传最好要兼容性好一些,之前用过uploadify这个jquery上传插件,但是首先它不支持断点续传而且HTML5版本的竟然要收费,秉承中国特色这里就不予考虑了;于是在网上找到了一个叫Stream的支持HTML5和Flash并且支持断点续传的这么一个插件,经过一天的尝试,终于把它整合到项目中去
socket实现文件断点续传
我想用JAVA弄一个局域网文件传输软件,想要实现文件的断点续传,采用的是socket,用的是RandomAccessFile类,在进行测试时,首先我把一个文件传输了一部分后停止传输,并记录了传输的位置,接下来在传输端用一个seek()方法将文件指针定位到上次传输的位置,又进行传输,直到传输结束。当我再次查看所传输的文件时,文件并不是由前阶段传输的和后阶段传输的结合起来得正常文件,而是只有后面传输的那部分。也就是第二次传输的内容已经覆盖了第一次传输的。很郁闷!哪位高手能帮我解答一下这到底是为什么啊,如果我像要做到文件的断点续传到底应该怎样做啊?多谢各位了!
webuploader 实现文件断点续传
先去下载webuploader 只需要将下面4个文件添加到工程里面就可以了 <link href="${ctxStatic }/webupload/webuploader.css" type="text/css" rel="stylesheet" /> <script type="text/javascript" src="${ctxStatic }/webu...
ASI实现文件断点续传
首先将ASINetwork集成到你的项目,由于ASINetwork是MRC环境的所以要 ARC和MRC混合开发需要修改ASINetwork的编译环境 其次还需要给ASINetwork添加运行类库 在搜索框输入libz 点击Add,然后就可以正常运行项目了注意导入#import "ASIHTTPRequest.h"这个头文件@interface ViewController ()
实现安卓文件断点续传
实现文件的断点续传功能,进行文件的双方面下载功能,实现文件的断点续传功能,简单明了
php+html+js+css实现文件断点续传
纯js实现多文件断点续传功能,便于开发者前端更换自己喜欢的UI设计。
php+html5实现文件断点续传
早就听说过断点续传这种东西,前端也可以实现一下 断点续传在前端的实现主要依赖着HTML5的新特性,所以一般来说在老旧浏览器上支持度是不高的 本文通过断点续传的简单例子(前端文件提交+后端PHP文件接收),理解其大致的实现过程 还是先以图片为例,看看最后的样子 一、一些知识准备 断点续传,既然有断,那就应该有文件分割的过程,一段一段的传。 以前文件无法
怎么实现文件的断点续传?
怎么实现文件的断点续传?
java多线程文件的断点续传
java文件的多线程断点续传大致原理 谈到文件断点续传那么就离不开java.io.RandomAcessFile HttpUrlConnection类 大致思路如下: 1 HttpUrlConnection去请求服务器 获得文件的长度con.getContentLength() 2 创建一个空的RandomAcessFile来接收,并且指定刚刚获取的长度setLength 3开启N个线...
java 断点续传文件到远程服务器
package com.my.file;rnrnimport java.io.BufferedInputStream;rnimport java.io.File;rnimport java.io.FileInputStream;rnimport java.io.IOException;rnimport java.io.RandomAccessFile;rnimport java.text.SimpleDateFormat;rnimport java.util.Date;rnrnpublic class FileUploadTask rnrn public static void main(String[] args) rn String fromPath = "d:\\targetFile.avi";rn String tmpPath = "e:\\temp\\";rn FileUploadTask fileTask = new FileUploadTask();rn long s = System.currentTimeMillis();rn fileTask.uploadFileByPoint(fromPath, tmpPath);rn long e = System.currentTimeMillis();rn System.out.println("all cost time :" + (e - s) + " ms");rn rnrn /**rn * upload file by pointrn * @param targetPathrn * @param uploadPathrn */rn public void uploadFileByPoint(String targetPath, String uploadPath) rn File targetFile = new File(targetPath);rn String fileName = targetFile.getName();rn int nlastPoint = fileName.lastIndexOf(".");rn String prefix = fileName.substring(0, nlastPoint);rn String suffix = fileName.substring(nlastPoint);rn File uploadFile = new File(uploadPath + fileName);rn File tmpFile = new File(uploadPath + prefix + ".dat");rn // if upload file exist,rename upload filern if (uploadFile.exists()) rn SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh.mm.ss");rn Date date = new Date();rn uploadFile.renameTo(new File(uploadPath + prefix + "_["rn + sdf.format(date) + "]" + suffix));rn rn long lfBytes = targetFile.length();rn long ltmpfBytes = tmpFile.length();rn System.out.println("target file size:" + lfBytes + " bytes");rn System.out.println("temp file size:" + ltmpfBytes + " bytes");rn FileInputStream fileIn = null;rn BufferedInputStream bufIn = null;rn RandomAccessFile randomFile = null;rn try rn fileIn = new FileInputStream(targetFile);rn bufIn = new BufferedInputStream(fileIn);rn randomFile = new RandomAccessFile(tmpFile, "rw");rn // skip the temp file bytesrn bufIn.skip(ltmpfBytes);rn // offset file point bytesrn randomFile.seek(ltmpfBytes);rn byte[] bytes = new byte[1024];rn while (bufIn.read(bytes) != -1) rn randomFile.write(bytes);rn rn catch (IOException e) rn e.printStackTrace();rn finally rn // release memory to freern releaseMemory(fileIn, bufIn, randomFile);rn // upload file over,remark file sizern ltmpfBytes = tmpFile.length();rn System.outrn .println("upload file over size:" + ltmpfBytes + " bytes");rn // if upload over,rename the temp filern if (ltmpfBytes >= lfBytes) rn tmpFile.renameTo(new File(uploadPath + fileName));rn rn rn rnrn /**rn * release memory to freern * @param fileInrn * @param bufInrn * @param randomFilern */rn private void releaseMemory(FileInputStream fileIn,rn BufferedInputStream bufIn, RandomAccessFile randomFile) rn if (fileIn != null) rn try rn fileIn.close();rn catch (IOException e) rn e.printStackTrace();rn rn rn if (bufIn != null) rn try rn bufIn.close();rn catch (IOException e) rn e.printStackTrace();rn rn rn if (randomFile != null) rn try rn randomFile.close();rn catch (IOException e) rn e.printStackTrace();rn rn rn rnrn
Android多文件断点续传(三)——实现文件断点续传
上一篇中我们主要介绍了如何实现数据库储存下载信息,如果你还没阅读过,建议先阅读上一篇Android多文件断点续传(二)——实现数据库储存下载信息。数据库我们已经准备好,现在就可以开始来实现DownloadService进行断点续传了。一.DownloadService/** * Created by kun on 2016/11/10. * 下载服务 */ public class Downl
用java实现文件的断点续传并发下载
说明 用java实现文件的断点续传,使用了HTTP的首部字段实现,在网上看到例子,手动实现一遍,理解其原理,在这记录下 正文 要实现断点续传,要在请求中设置请求开始的位置和结束位置,在HTTP请求中设置RANGE首部字段,之后服务器如果能正常返回,返回206状态码 用java实现的关键点: 1.设置请求的首部字段,使用java的net包 2.在读取资源文件后,要保存文件,从断点处保...
JavaWeb应用中大文件的断点续传的实现
1、在实际操作中,用户上传一个大文件,有可能会遇到与服务器失去连接,这样这个文件就只上传了一部分。用户需要再次连到服务的时候再次上传,但是这时候就要断点续传rn2、目前我的思路是这样的:可以在服务器端建立一个临时文件存放上传的临时文件,要是中途失去连接,下次重新上传的时候我们根据文件名在这个临时文件下面匹配,要是存在,则用RandomAccessFile去读取该不完成的临时文件,主要是获取该不完整临时文件的长度;不存在就直接上传文件,同时在服务器端生成临时文件,上传成功后再删除该临时文件(久而久之占硬盘空间)。rn3、目前的问题是用哪种技术给予实现,看了网上有用Socket实现的,说http搞不定,请高人指点。
Java基础-06.URL-多线程下载-断点续传-文件实现
本套Java视频无论是您有经验还是初级,都可以学到更多更多东西,课堂实录,自发布以来,好评如潮!徐培成的Java视频中注重与学生互动,讲授幽默诙谐、细致入微,覆盖Java基础所有核心知识点, 同类Java视频中也是代码量大、案例多、实战性强的。同时,本Java视频教程注重技术原理剖析,深入JDK源码,用实践驱动理论。
java实现断点续传
commons-fileupload实现断点续传,支持断网情况,捕获MalformedStreamException异常,存本地临时文件,继续上传
java实现下载断点续传
java实现下载断点续传,非常好的代码。值得借鉴,大家开发什么有下载功能的软件可以借鉴一下!
java实现FTP断点续传
NULL 博文链接:https://technicalsearch.iteye.com/blog/1484952
断点续传 java实现
package cn.edu.ujs.multithreaddownload; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.i
java实现ftp断点续传
java实现ftp断点续传
用Java实现断点续传
用Java实现断点续传,其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。
Java实现断点续传
包括一个客户端java文件,可以用来上传文件,但是要修改文件的地址;和一个服务端的完整JavaWeb项目,需要自己导入开发工具中调试
断点续传java实现
java实现断点续传 private void setHeader(URLConnection con) { con .setRequestProperty( "User-Agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3"); con.setRequestProperty("Accept-Language", "en-us,en;q=0.7,zh-cn;q=0.3"); con.setRequestProperty("Accept-Encoding", "aa"); con.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7"); con.setRequestProperty("Keep-Alive", "300"); con.setRequestProperty("Connection", "keep-alive"); con.setRequestProperty("If-Modified-Since", "Fri, 02 Jan 2009 17:00:05 GMT"); con.setRequestProperty("If-None-Match", "\"1261d8-4290-df64d224\""); con.setRequestProperty("Cache-Control", "max-age=0"); con.setRequestProperty("Referer", "http://www.skycn.com/soft/14857.html"); }
Java实现多线程下载和断点续传
java多线程下载拿来就能用的代码。java的多线程下载能够明显提升下载的速度,相当于开辟了多个通道进行下载,平时我们用的迅雷软件之所以能够下载那么快,就是使用了多线程;当用户在下载的过程中,有断电或断网的可能,所以要用到断点续传的功能。
Java实现断点续传程序
内容:(一)断点续传的原理 (二)Java实现断点续传的关键几点 (三)断点续传内核的实现
java实现多线程断点续传
断点续传的关键 这里只针对http协议。 1.http请求中可以设置RANGE属性,用来设置返回数据的其实位置和结束位置 2.每个线程对同一个文件,不同的位置进行写入。可用RandomAccessFile的seek(long pos)方法,设置文件读写的起始位置。 3当暂停下载时,需要保存每个线程下载的进度。写进中间文件。 4.继续下载时,读取上次下载的进度,继续下载。 本文代码部分复
java实现阿里云云通信短信通知发送
在之前博客中介绍了阿里云短信通知,但是自从2017年7月后阿里大于搬家规划给阿里云云通信,故短信通知接口改变,新注册的短信通知模板用阿里大于不再使用,必须调用阿里云云通信接口才可以。以下介绍下阿里云云通信实现短信通知发送。准备工作:环境:eclipse4.5-x64,jdk1.7,maven3maven环境添加短信通知依赖:<!-- 新版本阿里云云通信短信通知接口 --> <...
JAVA实现TCP发送文件
JAVA实现TCP发送文件,可使用Eclipse打开,或新建工程拷贝src的java文件到你的弓车好呢个
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池