首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
C/C++
C语言
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
问一个关于写文件的问题****************
[已结贴,结贴人:god_sun]
加为好友
发送私信
在线聊天
god_sun
蹲在厕所逗蛆玩
等级:
可用分等级:
长工
总技术专家分:
247
总技术专家分排名:
52362
揭帖率:
81.00%
发表于:
2008-08-24 10:35:42
楼主
想做个断点续传文件的小程序,就利用tcp来实现。
问题是比如server发文件to client,大文件就分批次发,是我client收到一个包就写文件。
现在假如我在穿文件的过程中断开,或者关闭client。 那么这个时候当然没有fclose(fp,那我之前写的数据是不是都没了?
那怎么能断点续传呢?client也就没法告诉server已经收到了多少了?
问题点数:
20
回复次数:
9
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chlaws
潇洒哥说-你是石家-
等级:
可用分等级:
富农
总技术专家分:
3692
总技术专家分排名:
5582
发表于:
2008-08-24 10:47:50
1
楼 得分:
3
去看这
http://hansong.bokee.com/708253.html
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
qmm161
秀才
等级:
可用分等级:
富农
总技术专家分:
1011
总技术专家分排名:
19136
发表于:
2008-08-24 10:48:01
2
楼 得分:
3
不太清楚,server是不是应该一开始就把文件的大小传过来,迅雷或者emule下载的时候一开始都是先知道了文件大小的
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kingstarer
等级:
可用分等级:
富农
总技术专家分:
1061
总技术专家分排名:
18437
发表于:
2008-08-24 11:03:53
3
楼 得分:
3
从服务器获取数据到差不多的时候就应该把内容往文件中写入啊
这样即使客户端突然关了,数据也不会丢失,当然在写文件的同时要写日志文件
这样下次打开时才好知道下载到哪了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
god_sun
蹲在厕所逗蛆玩
等级:
可用分等级:
长工
总技术专家分:
247
总技术专家分排名:
52362
发表于:
2008-08-25 09:25:14
4
楼 得分:
0
引用 1 楼 chlaws 的回复:
去看这
http://hansong.bokee.com/708253.html
原理我知道。现在问题不是原理是什么~!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
god_sun
蹲在厕所逗蛆玩
等级:
可用分等级:
长工
总技术专家分:
247
总技术专家分排名:
52362
发表于:
2008-08-25 09:26:04
5
楼 得分:
0
引用 2 楼 qmm161 的回复:
不太清楚,server是不是应该一开始就把文件的大小传过来,迅雷或者emule下载的时候一开始都是先知道了文件大小的
确实啊,我就是这样的做的,server先发送个文件信息给客户端。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
god_sun
蹲在厕所逗蛆玩
等级:
可用分等级:
长工
总技术专家分:
247
总技术专家分排名:
52362
发表于:
2008-08-25 09:30:54
6
楼 得分:
0
引用 3 楼 kingstarer 的回复:
从服务器获取数据到差不多的时候就应该把内容往文件中写入啊
这样即使客户端突然关了,数据也不会丢失,当然在写文件的同时要写日志文件
这样下次打开时才好知道下载到哪了
差不多是什么意思?我现在就是收到一次就写文件一次。我的问题是当我写文件的时候,我突然强制关闭客户端,这时当然没有fclose,文件会不会有数据~
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
fiveofhearts
5ofhearts
等级:
可用分等级:
长工
总技术专家分:
19
总技术专家分排名:
187019
发表于:
2008-08-25 09:38:17
7
楼 得分:
4
写文件是你客户端程序打开的吧,你客户端程序关闭了,好像文件就fclose了,应该有数据的。不过楼主你测试一下吧,应该很好解决的。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
butabuta528
肉肉
等级:
可用分等级:
长工
总技术专家分:
42
总技术专家分排名:
134933
发表于:
2008-08-25 09:42:22
8
楼 得分:
4
会有数据的,执行了fwrite只要不是强制关闭电源,哪怕进程意外结束了,数据还是可以写入的
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cang0lang
批着狼皮的羊
等级:
可用分等级:
长工
总技术专家分:
299
总技术专家分排名:
52000
发表于:
2008-08-25 09:57:24
9
楼 得分:
3
你可以自己定义一个简单的协议来表示请求断点续传。
我以前用socket写过一个ftp传输,支持断点续传的,
你向ftp服务器发送这个: strTemp.Format( _T("REST %ld"), NewStartLen ); NewStartLen 表示断点位置
ftp就会给你断点续传,
你也可以定义一个类似的。。。当服务器受到这种指令时,你就从给的那个数据做起点位置传输数据。。
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友