簡體   English   中英

關於.Net ftp類和被動模式的用法c#

[英]Regarding the usage of .Net ftp classes & passive mode c#

我們都知道.Net具有與ftp相關的類,而且我經常看到人們總是使用很少的ftp屬性:

wrq.KeepAlive = false;
wrq.UseBinary = false;
wrq.UsePassive = true;

誰能告訴我KeepAliveUseBinaryUsePassive是什么意思?

當我們為上述屬性設置true或false時,會發生什么情況,特別是告訴我UsePassive屬性的用途或含義是什么。

一個人簡要介紹了被動模式:

UsePassive:
如果客戶端應用程序的數據傳輸過程在數據端口上偵聽連接,則為false;否則為false。 否則,如果客戶端應在數據端口上啟動連接,則為true。 默認值是true

上述答案對我來說不是很清楚。 這樣任何人都可以更詳細地說明被動模式。

也許這些MSDN文章可以為您提供幫助?

活着

獲取或設置一個布爾值,該值指定在請求完成后是否關閉與FTP服務器的控件連接。

當KeepAlive屬性設置為false時,在調用Close方法時將關閉控件連接。

在調用GetRequestStream,BeginGetRequestStream,GetResponse或BeginGetResponse方法之后更改KeepAlive會導致InvalidOperationException異常。

http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.keepalive.aspx


UseBinary

獲取或設置一個布爾值,該值指定文件傳輸的數據類型。

如果要發送二進制數據(例如圖像),請將此屬性設置為true。 如果要發送文本,請將屬性設置為false。 指定true會導致FtpWebRequest向服務器發送“ TYPE I”命令。 指定false會使FtpWebRequest向服務器發送“ Type A”命令。 FTP服務器可以忽略這些命令。

在調用GetRequestStream,BeginGetRequestStream,GetResponse或BeginGetResponse方法之后更改UseBinary會導致InvalidOperationException異常。

http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.usebinary.aspx


UsePassive

獲取或設置客戶端應用程序的數據傳輸過程的行為。

將UsePassive屬性設置為true會將“ PASV”命令發送到服務器。 此命令請求服務器偵聽數據端口並等待連接,而不是在收到傳輸命令后啟動連接。

有關使用UsePassive指定的行為的說明,請參見RFC 959,“文件傳輸協議”,第3.2節,“建立數據連接”和第4.1.2節,“傳遞參數命令”,可從http:// www。獲得。 rfc-editor.org/

在調用GetRequestStream,BeginGetRequestStream,GetResponse或BeginGetResponse方法之后更改UsePassive會導致InvalidOperationException異常。

如果UsePassive設置為true,則FTP服務器可能不會發送文件大小,並且下載進度始終可以為零。 如果UsePassive設置為false,則防火牆可以發出警報並阻止文件下載。

http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.usepassive.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM