2

我们都知道 .Net 有 ftp 相关的类,我经常看到人们总是使用很少的 ftp 属性,称为:

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

谁能告诉我KeepAlive, UseBinary&是什么意思UsePassive

当我们为上面的属性设置true或false时会发生什么,具体告诉我UsePassive属性的用法或含义。

一个人简要解释了被动模式:-

UsePassive:
如果客户端应用程序的数据传输过程在数据端口上侦听连接,则为 false;否则,如果客户端应在数据端口上启动连接,则为 true。默认值是true

上面的答案对我来说不是很清楚。所以任何人都可以更详细地解释被动模式....谢谢

4

1 回答 1

1

也许这些 MSDN 文章可以帮助你?

活着

获取或设置一个布尔值,该值指定在请求完成后是否关闭与 FTP 服务器的控制连接。

当 KeepAlive 属性设置为 false 时,当您调用 Close 方法时将关闭控件连接。

在调用 GetRequestStream、BeginGetRequestStream、GetResponse 或 BeginGetResponse 方法后更改 KeepAlive 会导致 InvalidOperationException 异常。

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


使用二进制

获取或设置一个布尔值,该值指定文件传输的数据类型。

如果要发送二进制数据,例如图像,请将此属性设置为 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 属性设置为 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

于 2013-03-24T19:41:23.223 回答