2010-04-13 74 views
2

我有一個使用C#套接字的FTP監視/下載應用程序。我得到了這個錯誤信息:FTP監視和下載新文件

421斷開連接,因爲你在300秒內不工作。

有人能有這樣的解釋?我在這一個搜索,但我似乎無法找到一個很好的解釋。謝謝。

+2

我們應該能夠從這種錯誤信息,你不能以收集? – ChaosPandion 2010-04-13 00:26:19

+0

對不起ChaosPandion。我正在使用c#套接字,我期待着類似「你的數據套接字或命令套接字被服務器強制關閉,如果你處於下載模式,也許你應該看看你的命令套接字」。也許這回答我的問題,但我需要一些專家確認。無論如何,謝謝。 – Jojo 2010-04-13 00:44:13

+0

不需要道歉,這是一個非敵對的嘗試從你得到更多的細節。用文字表達情感意圖很難。 – ChaosPandion 2010-04-13 00:59:19

回答

3

它說,它斷開你,因爲你的連接是不活動的300秒。這是FTP服務器上的一種常見做法,因爲(與HTTP相反)FTP不是無狀態的,連接保持打開狀態,並且什麼都不做的連接可以很容易地填滿服務器的連接限制。

顯而易見的解決方案是確保你沒有300秒保持不活動。創建一個計時器,每分鐘執行一些操作,例如獲取當前目錄中的文件列表等。由於ChaosPandion在評論中提到,也許你應該在完成時關閉連接,當你需要時再重新打開它。

+4

真的如果你的應用程序在300秒內沒有執行任何任務(*代碼生命期*),你應該斷開連接。 – ChaosPandion 2010-04-13 00:31:44

+0

@ChaosPandion:同意。 – 2010-04-13 00:32:24

1

我認爲這幾乎說明了自己。服務器正在斷開您的連接,因爲它在5分鐘內未處於活動狀態。問題是:什麼算作活動? 恐怕答案不會在FTP RFC中找到,因爲這可能是特定於實現的。此外,超時間隔可能會有所不同(可以通過FTP管理實用程序進行配置)。

如果我是正確的,你只需要設計應用程序來解決此限制,通過斷開時重新連接,並進行必要的任何活動重新驗證您的應用程序的內部狀態。