【发布时间】:2011-04-03 23:19:10
【问题描述】:
不久前,我问了一个关于在大型传输期间保持 FTP 会话上的控制连接处于活动状态的问题。虽然我虽然在implementing a solution for a question I'd already asked 之后取得了成功,但似乎 ISP 是问题所在,即它们导致我的控制连接在大传输期间中断。
有趣的是,老式的 FTP 客户端程序“Leap-FTP”通过在下载期间通过控制连接向服务器发送“NOOP”命令来解决此问题。虽然其他流行的客户端在传输过程中死机(Filezilla,我的 Python FTP 脚本),但由于这种解决方法,LeapFTP 运行良好。
我对线程和队列进行了一些研究,但在想出实现这一点的代码时遇到了麻烦。
解决方案似乎很简单(至少在我看来):启动下载,当下载功能运行时,每 n 秒发送一个 NOOP 命令。下载功能完成后停止发送 NOOP 命令。
我希望有人能给我一个关于如何做到这一点的建议。会不会涉及到线程、队列的使用,还是有更简单的解决方案?
底线是,经过大量测试,“NOOP”命令将不得不在大量下载期间发送(发生在高编号 TCP 端口上)。
谢谢!
【问题讨论】:
标签: multithreading ftp controls