小更新: 如果它进一步连接我得到(继续调试信息):
200 PROT P OK, data channel will be secured.
CCC
200 CCC Context Enabled.
PASV
Exception:Could not parse response code.
Server Reply: ': command not understood.
我正在开发一个我无法控制服务器的项目。 它必须是显式SSL连接并使用清除命令通道。 它到达execCCC命令然后停止,
FTPSClient pftps = new FTPSClient(false);
pftps.addProtocolCommandListener(new PrintCommandListener(System.out));
pftps.setControlKeepAliveTimeout(300);
try {
pftps.setAuthValue("SSL");
pftps.setUseEPSVwithIPv4(true);
pftps.connect(result.getPershingHost(), 21);
pftps.enterLocalPassiveMode();
pftps.user(result.getPershingLoginId());
pftps.pass(result.getPershingLoginPass());
pftps.execPBSZ(0L);
pftps.execPROT("P");
pftps.execCCC();
FTPFile[] files = pftps.listFiles();
for (FTPFile file : files) {
System.out.println(file);
}
...
调试:
AUTH SSL
234 AUTH TLS-P/SSL OK.
USER myuser
331 Password required for myuser.
PASS password
230 Connect:Enterprise UNIX login ok, access restrictions apply.
PBSZ 0
200 PBSZ 0 OK.
PROT P
200 PROT P OK, data channel will be secured.
CCC
200 CCC Context Enabled.
有几次我得到一个错误,比如解析SYST命令响应的错误但是9/10次,它只是在这里停滞不前。 我正在使用commons-net 3.3,我认为修复了以前有关使用CCC的错误。 另外,要注意,我已经尝试将execCCC放在PROT / PBSZ之前,它甚至会在CCC命令上挂起。 我很感激任何帮助,因为这会让我感到害怕。