我遇到了问题。根据我的最新要求,我必须将文件上传到ftp或sftp服务器。问题是我不知道服务器是ftp还是sftp。在运行时,客户端将提供我必须上传文件的服务器的IP和其他详细信息。因此,在运行时我必须了解服务器是ftp或sftp,然后需要采取相应的行动。那么,有没有出路呢?
答案 0 :(得分:2)
SFTP(SSH文件传输协议)默认使用端口22。
有些人使用“SFTP”来表示FTPS(FTP-over-TLS)。在这种情况下,您有两个选项:显式TLS和隐式TLS。隐式TLS默认使用端口990。在显式模式下,客户端默认连接到端口21,然后告诉服务器通过现有连接启动TLS握手。
普通FTP使用端口21.
现在,用户可以明确指定要使用的协议。
最后,您可以尝试连接,从套接字中获取第一行数据并进行分析。在FTP / FTPS中,第一行应以220SP开头(SP代表空格,代码为0x20的字符)。也可以给出其他响应代码。在SSH / SFTP中,该行以“SSH-2.0-”开头。
答案 1 :(得分:0)
ftp和sftp将使用不同的端口(分别为21和22)。这应该是“ip和服务器的其他细节”的一部分。