讲ftpserver嵌入式ftp服务器的文章很多,但是都没有介绍pass功能设置的。
apach上pass部分也是针对的ftpd服务器的xml配置,关于嵌入式ftp服务器设置pass功能的部分几乎没有介绍。
经过摸索,设置如下:
// 设置pass
DataConnectionConfigurationFactory dfactory = new DataConnectionConfigurationFactory();
dfactory.setPassivePorts("9000-9300"); // pass模式占用端口范围
dfactory.setPassiveExternalAddress("xx.xxx.xx.xxx"); // 外网地址
dfactory.setPassiveAddress("0.0.0.0"); // 地址 ListenerFactory lfactory = new ListenerFactory();
lfactory.setDataConnectionConfiguration(dfactory.createDataConnectionConfiguration()); serverFactory.addListener("default", lfactory.createListener());
// 创建并启动服务器
FtpServer server = serverFactory.createServer();
通过 DataConnectionConfigurationFactory 来设置pass,并将其设置为ListenerFactory的数据通讯模式。