关于文件传输的命名问题

csl312211865 2010-01-31 04:08:38
A要传文件C给B,告诉B C的文件名,大小,B确认接收,于是创建和C同名的文件,开始接收。
如果想支持断点续传,就必须记录当前传输的进度。于是创建一个记录文件C的传输进度文件。但是这个记录进度的文件,该怎么命名?就是说中断了,于是A再次发送C,B怎么知道这个文件以前曾传输过,怎么找到上次传输的记录文件。
本想用MD5,A发送C时,按C的路径,计算C的MD5值,B用这个MD5作为传输C的记录文件名。
但是发现http://baike.baidu.com/view/7636.htm?fr=ala0_1百度百科里的MD5算法中,
1ULL << 32
这句在VC6下编译不过去,在VS2008中编译问题。
因为是用vc6写的程序,所以来请教大虾们怎么解决,是否有比MD5更好的解决方法?
...全文
94 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnzdgs 2010-01-31
  • 打赏
  • 举报
回复
1ULL << 32 改成 (ULONGLONG)1<<32。
schlafenhamster 2010-01-31
  • 打赏
  • 举报
回复
ULL=ULONGLONG 64-bit unsigned integer.
1ULL <<32;=0x0000 0001 0000 0000=0x0000000100000000
//
(UINT32)floor( (1ULL << 32) * fabs(sin( roundIdx * 16 + i + 1 )) )
(UINT32)floor( (0x0000000100000000) * fabs(sin( roundIdx * 16 + i + 1 )) )
csl312211865 2010-01-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 conry 的回复:]
这个规则是你自己设定的,简单的话就记录文件名,文件大小就行了,复杂的话记录ip,文件MD5

就看你的需求了
[/Quote]看来是我没把问题描述清楚。。。就是把,这些信息存哪?
csl312211865 2010-01-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wwwllg 的回复:]
我是只接记住已经收到的长度就行了。没有用什么md5,可qq交流,
[/Quote]问题是你记录到哪呢?总得存一个文件里吧?这个文件怎么命名?
Conry 2010-01-31
  • 打赏
  • 举报
回复
这个规则是你自己设定的,简单的话就记录文件名,文件大小就行了,复杂的话记录ip,文件MD5

就看你的需求了
UDX协议 2010-01-31
  • 打赏
  • 举报
回复
我是只接记住已经收到的长度就行了。没有用什么md5,可qq交流,
csl312211865 2010-01-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fishion 的回复:]
迅雷下载不是会同时生成两个文件吗
[/Quote]是啊,但是迅雷是客户端主动去下载,就是你要下载某个文件,你得先知道这个文件的路径(URL),而我的问题是类似QQ传文件,有人给你发一个文件,怎么实现断点续传?
fishion 2010-01-31
  • 打赏
  • 举报
回复
迅雷下载不是会同时生成两个文件吗
csl312211865 2010-01-31
  • 打赏
  • 举报
回复
计算C的MD5值,应改成 计算C路径的MD5值

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧