2014-02-21 58 views
2

我一直在挣扎了很多,过去几天与要求“CCC”命令我通过净净FTPS连接时期

试图访问一个FTPS服务器我正在使用AlexFTPS库。我能够连接并关联AUTH TLS,我可以更改目录,但是当我尝试列出目录或下载文件时,服务器会要求输入“CCC”命令。当我发送'CCC'命令时,我得到'200 CCC上下文启用'回复,但随后我无法发送任何其他内容,只要出现服务器超时异常。

我做了进一步的试验:

  • WS_FTP:作品,如果我检查选项
  • FileZilla中的“SSL认证后使用未加密的命令通道”:不,即使我加入“CCC”作为工作一个帖子登录命令
  • http://www.componentpro.com/ftp.net/:工程,但不是开源

任何帮助,将这么多的赞赏......对不起,我不FTP流畅...

这里是我的代码:

Using Client As New AlexPilotti.FTPS.Client.FTPSClient 

     AddHandler Client.LogCommand, Sub(sender As Object, args As AlexPilotti.FTPS.Common.LogCommandEventArgs) 
              Console.WriteLine(args.CommandText) 
             End Sub 

     AddHandler Client.LogServerReply, Sub(sender As Object, args As AlexPilotti.FTPS.Common.LogServerReplyEventArgs) 
               Console.WriteLine(args.ServerReply) 
              End Sub 

     Dim cred = New Net.NetworkCredential("login", "password") 
     Client.Connect("ftps.server.com", cred, AlexPilotti.FTPS.Client.ESSLSupportMode.CredentialsRequired) 

     Client.SendCustomCommand("SYST") 
     Client.SendCustomCommand("PBSZ 0") 
     Client.SendCustomCommand("PROT P") 
     Client.SendCustomCommand("FEAT") 
     Client.SendCustomCommand("PWD") 
     Client.SendCustomCommand("TYPE A") 
     Client.SendCustomCommand("PASV") 
     Client.SendCustomCommand("CCC") 
     Client.SendCustomCommand("LIST") 

     Console.ReadKey() 

    End Using 

谢谢!

回答

1

CCC(“Clear Command Channel”)是一个特殊的命令,它将连接从SSL(从AUTH TLS开始)降级为未加密。所以仅仅将它声明为一个自定义命令并不足以将其作为在已建立的控制连接上发送的自定义命令,它必须通过FTPS库类似于AUTH TLS进行处理,以便在命令完成后发生TLS降级。

+0

好的,非常感谢您的帮助!所以我想我不能用这个API来处理这个... –