问个FTP连接有效性的问题

李迟
博客专家认证
2011-11-10 06:00:05
现在项目中使用网络硬盘存储,通过FTP方式来保存数据的,接口已经实现好了,但有一个问题:如何才能确保FTP一直在连接?或者说,必须让FTP一直处于连接状态。我见过有些FTP服务器,当一段时间(比如3分钟)内没有进行任何的交互操作,服务器会断开连接,

我试过一种方法,就是隔一段时间发送NOOP命令到服务器,检测返回值。测试结果表示连接一直有效。因为发送NOOP命令也是一个交互操作。

但FTP的连接会不会一直有效下去?比如一天,两天,甚至一个月?——当然,在设备开机,网络连接的情况下。

对FTP了解不多,还望各位兄台指点。
...全文
162 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
李迟 2011-11-15
  • 打赏
  • 举报
回复
自己的方法:
网上资料说,必须发生数据传输才能保持连接性。像刚开始用NOOP、RM这些命令,都不行,就是因为这些命令没有发生数据传输,虽然有信息,但都是在控制连接中传输的,没有在数据连接中传输。
解决方法是用NLST命令,接收一小部分数据(比如十几个字节),这样,有了数据传输,就能一直保持连接性了。我只测试了几个小时左右,没有测试更长时间,因此不敢保证正确性。
好像只有列表、上传、下载这三个命令有数据传输,其它都没有。

3楼中说的15分钟,视不同FTP服务器而定。有的是5分钟,即300秒。

写出自己的方法,方便后来人——如何有的话。

由于少人回复,再顶一下,如果还没有人来,100分全部给1楼。
李迟 2011-11-11
  • 打赏
  • 举报
回复
顶一下。
我试过每隔几分钟发送一个NOOP,每隔15分钟连接便会断开,这说明只发送NOOP是不算交互操作的,当到达一定时间时,服务器还是会断开连接。
李迟 2011-11-10
  • 打赏
  • 举报
回复
多谢回复,我跟同事讨论讨论这种方法。
jixingzhong 2011-11-10
  • 打赏
  • 举报
回复
可以尝试ftp心跳包?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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