![]() |
1
3
有多个问题,我们试着逐一解决: 为什么删除作品,但上传、下载和列表没有? FTP协议使用两个单独的连接。第一(称为 控制连接 )用于响应简单的命令-如登录、删除、生成目录等。通常在端口21上运行。 当ftp客户端请求数据传输操作时,另一个连接(调用 数据连接 )已建立。在主动模式下,ftp服务器连接到客户机,而在被动模式下,客户机连接到服务器。如果此连接被防火墙阻止,数据传输操作将失败。数据传输操作包括上传、下载以及 目录列表 . 这就是为什么删除有效而列表无效的原因。 服务器响应pasv命令返回了一个不同于ftp连接地址的地址。 在被动模式下,ftp会话如下:
它可能会在具有多个IP地址的FTP服务器上造成问题。我遇到过一些具有公共IP地址(比如1.2.3.4)和私有IP地址(192.168.2.3)的FTP服务器。 当FTP客户机连接到公共IP地址(1.2.3.4)并请求数据传输操作服务器时,服务器指示他使用专用IP地址(192.168.2.3)。这是不可能的,因为它是被命名的。 解决方案 切换到激活模式。 在活动模式下,ftp服务器连接到ftp客户机进行数据传输。它可以解决这个问题,但不支持防火墙。当输入的逗号被阻塞(非常常见)时,它将不起作用。 忽略IP地址作为对pasv命令的响应发送 如果公用FTP服务器IP地址是公用的,并且作为对pasv命令的响应返回的IP地址来自专用范围(例如10)。 ,192.168。 )在这种情况下,ftp客户机应该使用公共IP地址。 这正是我们的 Rebex FTP 在这种情况下做。它工作得很好(可以关闭此行为)。我不知道FTPWebrequest是否可以进行类似的解决方案。 你可以 download trial 检查它是否解决了你的问题。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |