Apache FTP Server以编程方式停止会话

时间:2016-11-02 11:00:18

标签: java apache ftp

我正在开发一个使用TCP套接字交换消息和Apache FTP Server交换文件的聊天系统。当客户端套接字与服务器套接字断开连接(不再交换消息)时,我还想终止客户端打开的所有FTP会话。在没有回答的情况下搜索互联网(官方文档也没有帮助)之后,我快速探索了Apache FTP服务器源代码,并提出了一个肮脏的解决方案:

public void disconnectFTPSessionFromClient(String clientIP) {
    Set<FtpIoSession> sessions = ftpServer.getListener("default").getActiveSession();
    for (FtpIoSession s : sessions) {
        if (clientIP.equals(s.getFtpletSession().getClientAddress().getAddress().getHostAddress())) {
            s.close(false).awaitUninterruptibly(1000);
        }
    }
}

到目前为止,代码按预期工作,但我仍然害怕有一天它会破坏服务器。任何人都可以告诉我结束Apache FTP服务器的FTP会话的正确方法吗?

0 个答案:

没有答案