前一段时间,我问了一个关于在大量传输期间保持FTP会话上的控制连接处于活动状态的问题。尽管我已经在implementing a solution for a question I'd already asked之后取得了成功,但看起来好像ISP是问题所在,即它们导致我的控制连接在大量传输期间死亡。使FTP控制连接保持活动状态
有趣的是,老派的FTP客户端程序“Leap-FTP”只需在下载过程中向控制连接上的服务器发送“NOOP”命令即可解决此问题。当其他受欢迎的客户端在传输过程中死亡(Filezilla,我的Python FTP脚本)时,由于此解决方法,LeapFTP运行良好。
我已经对线程和队列进行了一些研究,但是遇到麻烦提出了代码来做到这一点。
该解决方案似乎很简单(至少在我的脑海中):启动下载,在下载功能运行时,每隔n秒发送一次NOOP命令。下载功能完成后停止发送NOOP命令。
我希望有人可以给我一个建议,说明如何做到这一点。它会涉及使用线程,队列还是有更简单的解决方案?底线是,经过大量测试后,'NOOP'命令将不得不在大量下载(发生在高编号的TCP端口上)期间发送。
谢谢!