如何监控用于ftp服务的网络端口?

时间:2015-09-15 16:01:55

标签: java ftp

每次建立ftp连接时,我都希望触发java程序。

我不确定如何检查FTP连接。有没有办法监控端口,以便我可以确认FTP何时获得新连接?

我研究了一下,发现FTPClient类基本上建议我需要自己做ftpclient,但我想知道是否还有其他方法。

即使是外部程序也可以选择。

3 个答案:

答案 0 :(得分:0)

有多种方法:

  • 让FTP服务本身启动java应用程序(听起来很昂贵)或通知正在运行的Java应用程序/服务。这将是最简单的方法......

  • 使用某种外部监控; e.g。

    • 通用数据包数据包嗅探工具(如wiresharktcpdump)可能能够触发外部应用程序。如果没有,您可以将其记录到您扫描连接事件的文件中。

    • 您可以使用jpcap实现一些在Java中进行自己的数据包嗅探

    • 有一个名为tcpspy的Linux实用程序可将TCP / IP连接详细信息记录到syslog中。您可以将其配置为特定文件并监视该文件,或者,您可以修改tcpspy以直接启动或通知Java应用程序。

答案 1 :(得分:0)

  

它将在服务器端运行,基本上程序将读取客户端放在其上的文件。

考虑使用文件观察程序。看起来你并不真正关心文件是否使用FTP(事实上,将来它可能会通过其他方式实现),但只是文件存在且需要处理。

有关如何撰写的详细信息,请参阅Watching a Directory for Changes

答案 2 :(得分:0)

我有一个程序,用java执行类似的服务器端任务。它检查文件夹中是否存在文件,如果是,则启动其余代码。像这样:

public static boolean needToConvert(){
    //get list of companies
    List<String> companies = getCompanyNames();
    //check whether a file exists in folder of company
    for(String company: companies){
        if (new File(INPUT_LOCATION + company).list().length > 0){
            return true;
        }
    }
    return false;
}

这是一项相当昂贵的任务,因此您可以将服务器设置为&#34;检查&#34 ;;比如,每分钟左右。