前一段時間,我問了一個關於在大量傳輸期間保持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端口上)期間發送。
謝謝!