社区
C语言
帖子详情
ftp问题
zscedu
2011-06-21 05:07:04
自己写的ftp程序从服务器上下载东西,下载完后本地文件与服务器上的文件大小一样,内容有时候会不一样,这是怎么回事呀?并且程序里面也有断点续传的处理
...全文
152
24
打赏
收藏
ftp问题
自己写的ftp程序从服务器上下载东西,下载完后本地文件与服务器上的文件大小一样,内容有时候会不一样,这是怎么回事呀?并且程序里面也有断点续传的处理
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zscedu
2011-06-23
打赏
举报
回复
如果在ftp续传过程中,文件重定位不成功,那我就一直重定位,直到成功为止可不可以呢?
lishengkai
2011-06-23
打赏
举报
回复
把你下载的那部分代码贴出来看看嘛 问题出在哪标注下
ws4028196
2011-06-22
打赏
举报
回复
就安静的绿卡时间 阿萨德
zscedu
2011-06-22
打赏
举报
回复
[Quote=引用 18 楼 lishengkai 的回复:]
RFC文档中对FTP的规定很多的,不同的服务器实现不同
从工作模式来说分为主动和被动模式两种,这个对传输的数据内容没什么影响
然后就是传输模式:流模式、块模式、压缩模式。如果是你自己的客户端你首先要确认下服务器是支持哪集中传输模式的,流模式是默认的模式,文件下载下来直接写盘没问题;压缩模式现在主要都是用zlib库对数据进行压缩后再传输的,如果是你自己的客户端那你就要在你写盘之前对数据进行解……
[/Quote]
恩,谢谢了,我再找找吧
lishengkai
2011-06-22
打赏
举报
回复
RFC文档中对FTP的规定很多的,不同的服务器实现不同
从工作模式来说分为主动和被动模式两种,这个对传输的数据内容没什么影响
然后就是传输模式:流模式、块模式、压缩模式。如果是你自己的客户端你首先要确认下服务器是支持哪集中传输模式的,流模式是默认的模式,文件下载下来直接写盘没问题;压缩模式现在主要都是用zlib库对数据进行压缩后再传输的,如果是你自己的客户端那你就要在你写盘之前对数据进行解压操作,不然会是乱码;块模式现在现网上用的比较少,它是将数据分成一个一个的数据块进行传输,每个块包含一个块头,你下载后要对数据块进行解析才能得到正确的数据。不同的传输模式传输的内容是不一样的,这个对数据内容很有影响
然后就是数据表示类型,RFC规定了四种类型:ASCII类型、EBCDIC类型、二进制文件类型(也叫图像文件类型)、最后一个就是本地类型(local类型)。本地类型我到现在还没搞太明白,说是在不同字节长度的机器之间传输用的,可我还没遇到不是8比特一个字节的机器,这个就先不讨论;ASCII类型出了要注意在UNIX和windows之间传输的时候注意\r\n和\n之间的转换似乎也没太多问题;EBCDIC类型是需要重新编码的,网上自己去找下;二进制的就不用说了。 数据表示类型不对也有可能造成文件内容不对
FTP还有格式控制和三种不同的结构,但是应该不会影响到你的数据,不做讨论
建议你再传输模式和数据表示类型这两个地方去找下原因,我估计是这里的问题,可能你自己的写的客户端需要修改了
AnYidan
2011-06-22
打赏
举报
回复
[Quote=引用 15 楼 zscedu 的回复:]
引用 14 楼 yanjing12260302 的回复:
1、断点续传的
2、看看在网络传输是按大端还是小端(是不是也考虑在内)
大端小端也会引起有时候一致有时候不一致的情况吗?
[/Quote]
一般来讲网络间传输按字节,如果大端小端不一致,设想一个 wchar 字符在两地的表述方式
1。 如果只是偶尔有几个字节有问题,重点查断点续传的
2。 如果偶尔有几个文件问题,重点查大端小端 或你程序内部对文件的处理方式
至善者善之敌
2011-06-22
打赏
举报
回复
内容都不一样了,还能说啥,肯定程序出问题了
zscedu
2011-06-22
打赏
举报
回复
[Quote=引用 14 楼 yanjing12260302 的回复:]
1、断点续传的
2、看看在网络传输是按大端还是小端(是不是也考虑在内)
[/Quote]
大端小端也会引起有时候一致有时候不一致的情况吗?
zscedu
2011-06-22
打赏
举报
回复
大侠们,lseek当中文件长度溢出,是不是lseek就要出错了呀?
zscedu
2011-06-22
打赏
举报
回复
我发现是文件重定位出错了?那什么可以引起lseek出错呢?
黎翔
2011-06-21
打赏
举报
回复
1、断点续传的
2、看看在网络传输是按大端还是小端(是不是也考虑在内)
金刚葫芦娃
2011-06-21
打赏
举报
回复
[Quote=引用 10 楼 zscedu 的回复:]
引用 9 楼 abao623660072 的回复:
从服务器上下载的文件理论肯定没错.
用你自己写的下载一个跟用别的下载下来比较一下, 看问题是否真的出在你写的FTP上.
是我写的ftp有问题了,但像这样的问题会什么引起的呢?
[/Quote]
首先,你写FTP,主要就是连接服务器地址,然后下载,跟文件里内容应该没有多大关系,
自己一步一步跟着打印信息走下看看呢?
看是否去服务器上取文件的文件名发生改变没有.
就想叫yoko
2011-06-21
打赏
举报
回复
很有可能是你断电续传的问题
可以往这方面查查看~
zscedu
2011-06-21
打赏
举报
回复
并且这个两个文件内容不一致,会不定时的出现
zscedu
2011-06-21
打赏
举报
回复
[Quote=引用 9 楼 abao623660072 的回复:]
从服务器上下载的文件理论肯定没错.
用你自己写的下载一个跟用别的下载下来比较一下, 看问题是否真的出在你写的FTP上.
[/Quote]
是我写的ftp有问题了,但像这样的问题会什么引起的呢?
金刚葫芦娃
2011-06-21
打赏
举报
回复
从服务器上下载的文件理论肯定没错.
用你自己写的下载一个跟用别的下载下来比较一下, 看问题是否真的出在你写的FTP上.
zscedu
2011-06-21
打赏
举报
回复
[Quote=引用 3 楼 justkk 的回复:]
写文件的时候是否采用二进制模式?
传输文件的时候是否采用二进制模式?
[/Quote]
但他有时候是正确的呀
zscedu
2011-06-21
打赏
举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
大小一样,并不代表内容一样啊,a和b都占一个字节,能一样吗
[/Quote]
是呀,那为什么a会变成b呢?从服务器上下载的东西不应该和服务器上的一模一样吗?
luciferisnotsatan
2011-06-21
打赏
举报
回复
用的是不是二进制模式?
downmooner
2011-06-21
打赏
举报
回复
问题问的太笼统。答案也很笼统。。程序有问题
加载更多回复(4)
FTP
文件传输服务
在提供
FTP
服务中有个重要概念,就是主动模式和被动模式,如果没有碰到
问题
,我们将不会去理会它,例如:碰到了之前可以用,现在不能用了,或者这个客户端可以用,那个客户端不能够用,那么就是这里出现了
问题
。...
解决linux不能使用
ftp
问题
[root@lx01 etc]# rpm -qa |grep
ftp
---检查是否安装了
ftp
l
ftp
-3.7.11-4.el5
ftp
-0.17-35.el5 t
ftp
-server-0.49-2 vs
ftp
d-2.0.5-16.el5_4.1 配置yum 加载缺失包 [root@node1 ~]# cd /etc/yum.repos.d [root@node1...
kettle 通过vfs上传
FTP
问题
KETTLE在转换中输出地址使用VFS上传LINUX的
FTP
,VFS与
FTP
交互默认的是主动模式,由于...kettle6.0版本己经使用vfs2.0解决了这个
问题
,以下版本需要设置 文本输出步骤需要修改源码,其它步骤如excel到
ftp
,json到
ftp
不...
linux
ftp
230 login successful.,有关
ftp
问题
,请帮忙!——急
我登录
ftp
的服务器后,想把本机Windows下的一个文件拷到Linux上,步骤如下:#
ftp
ftp
>open服务器ip然后输入用户名和密码(就是我登录用的用户名和密码,没错吧)
ftp
>putC:文件名就出现如下错误local:C:a....
移远EC200S 的
FTP
问题
近期将通讯模块由EC20更换为 EC200S之后,发现联网和
FTP
下载文件性能均有所下降,现将
问题
总结一下 1:EC20带内部定位,EC200S不带内部定位; 2:EC20是CAT4全网通,EC200S是CAT1产品; 3:EC200S分AA(4G+2G)和LA...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章