2017-01-30 173 views
0

我需要使用.NET Framework 4.6.2創建一個C#客戶端來連接服務器。SFTP服務器或FTPS服務器?

我的客戶端爲我提供了連接到SFTP服務器或FTPS服務器的可能性,但我不知道哪一個最適合連接。

在此page,我發現這一點:

無內置的VCL SSH/SFTP支持語言和.NET框架

我需要連接到服務器的上傳和下載文件。我還需要監視服務器上的目錄以瞭解文件何時位於該遠程目錄中。

在Internet上搜索我不確定實現SFTP協議的.NET庫(SSHNet)是否足以滿足生產環境的要求。

我認爲SFTP是最好的選擇,但FTPS可以更容易地爲它實現一個C#客戶端。

或者,也許我可以使用libssh2來實現一個C程序,該程序負責監視遠程目錄,下載任何新文件並上傳我需要上傳的文件。

有什麼建議嗎?

+0

以後需要用什麼樣的方式處理服務器?只需上傳o下載單個文件,或者您是否正在查看完整的「FTP客戶端」功能?捆綁可執行文件是一個選項嗎? – poke

+2

SFTP和FTPS具有不同的功能。他們之間的選擇不僅取決於容易獲得的東西,而且取決於您的需求! – AFract

+0

@poke我需要連接到遠程服務器來上傳和下載文件。我還需要監視服務器上的目錄以瞭解文件何時位於該遠程目錄中。 – VansFannel

回答

2

如果兩種協議都適合您的實際需求(如您的問題和評論中所建議的那樣),如果這只是「在.Net中最容易使用」的問題,那麼我只會選擇FTPS。

實現起來非常快,因爲即使在舊版本的框架中,您也可以在框架(「FtpWebRequest」類或最近的"WebClient"等)中找到所需的所有內容。

您可以找到有關這個在網絡上或SO

你剛纔提到,你需要「監視」遠程服務器上的文件夾大量的資源。當然,FTPS沒有任何問題來檢索文件夾中所有文件的列表,但它將會以您想要的頻率進入「拉」模式。每次新文件被刪除時,服務器本身都無法向您發送通知。所以如果你需要一些實時通知,這不是最佳的。