Apache Commons net中的execProt("P")是什么?

eec*_*ech 2 java ssl ftps apache-commons-net

我在我的aws ec2实例上设置了一个FTPS服务器.我正在使用Apache Commons net以编程方式连接到我的服务器.

try
{
    ftps.enterLocalPassiveMode();
    ftps.setBufferSize(1000);
    ftps.execPROT("P");

    if (!ftps.login(username, password))
    {
        ftps.logout();
        error = true;
        break __main;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我没有设置execProt("P"),我无法检索文件.从他们的文档中,我看到"P"代表私有数据通道保护级别.这是什么意思?为什么我使用P而不是"S"或"E"?

Ste*_*ich 5

ftps中的PROT命令可以具有值P和C.P代表私有,意味着数据连接使用TLS加密.C代表清除,表示数据连接未加密.E(机密)和S(安全)的值也被定义,但实际上没有在FTP服务器中实现.有关更多详细信息,请参阅规范,即RFC 4217.