有没有办法判断 FTP 服务器在 Java 网络程序中是主动的还是被动的?
Is there a way to tell if the FTP server is active or passive in the Java web program?
我正在使用 Apache-Commons-Net 库。
我想知道 FTP 服务器是主动模式还是被动模式。
Apache-Commons-Net 库中是否有类似的方法?
(GetDataConnectionMode()
是在Java中连接后告诉你连接模式的方法。之前想查一下Maud)
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
正如@Erwin 已经评论的那样,服务器不处于主动或被动模式。服务器通常同时支持这两种模式。
您需要使用的模式,通常取决于您和服务器之间的网络配置,而不是服务器上的某些"switch"。几乎没有任何方法可以检测到这一点。
您所能做的就是尝试一种模式,如果第一种模式失败,则回退到另一种模式。一般来说,你应该从被动模式开始,因为它往往更有效。
另请阅读我关于 FTP connection modes 的文章以及它们所需的网络配置,以了解这是关于什么的。
我正在使用 Apache-Commons-Net 库。
我想知道 FTP 服务器是主动模式还是被动模式。
Apache-Commons-Net 库中是否有类似的方法?
(GetDataConnectionMode()
是在Java中连接后告诉你连接模式的方法。之前想查一下Maud)
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
正如@Erwin 已经评论的那样,服务器不处于主动或被动模式。服务器通常同时支持这两种模式。
您需要使用的模式,通常取决于您和服务器之间的网络配置,而不是服务器上的某些"switch"。几乎没有任何方法可以检测到这一点。
您所能做的就是尝试一种模式,如果第一种模式失败,则回退到另一种模式。一般来说,你应该从被动模式开始,因为它往往更有效。
另请阅读我关于 FTP connection modes 的文章以及它们所需的网络配置,以了解这是关于什么的。