在Java web程序中,有没有办法判断FTP服务器是主动的还是被动的?

在Java web程序中,有没有办法判断FTP服务器是主动的还是被动的?,java,ftp,apache-commons-net,Java,Ftp,Apache Commons Net,我正在使用ApacheCommonsNet库 我想知道FTP服务器是主动模式还是被动模式 在ApacheCommonsNet库中有这样的方法吗 (GetDataConnectionMode()是一个在Java中连接后告诉您连接模式的方法。我想在之前检查一下Maud) 正如@Erwin已经评论的那样,服务器不处于主动或被动模式。服务器通常同时支持这两种模式 您需要使用的模式通常取决于您与服务器之间的网络配置,而不是服务器上的某个“交换机”。几乎没有办法检测到这一点 您所能做的就是尝试一种模式,如果

我正在使用ApacheCommonsNet库

我想知道FTP服务器是主动模式还是被动模式

在ApacheCommonsNet库中有这样的方法吗

GetDataConnectionMode()
是一个在Java中连接后告诉您连接模式的方法。我想在之前检查一下Maud)


正如@Erwin已经评论的那样,服务器不处于主动或被动模式。服务器通常同时支持这两种模式

您需要使用的模式通常取决于您与服务器之间的网络配置,而不是服务器上的某个“交换机”。几乎没有办法检测到这一点

您所能做的就是尝试一种模式,如果第一种模式失败,则返回到另一种模式。一般来说,您应该从被动模式开始,因为被动模式通常更有效


也请阅读我的文章以及他们需要的网络配置,以了解这是关于什么的。

这通常不是服务器的属性,但如果您的网络作为客户端;服务器可以同时执行这两项操作,但如果您的客户端位于NAT之后,服务器将无法连接回您的客户端,因此您的客户端需要连接到服务器以进行数据连接。
private FTPClient ftp;

// the code I want
if(active){
  ftp.enterLocalActiveMode();
}else{
  ftp.enterLocalPassiveMode();
}

// Apply active mode or passive mode to the environment of the server for oneself