如何用java程序监视windows中的tcp stats

时间:2013-08-29 06:12:34

标签: java tcp monitoring

我想通过JAVA程序监控系统有多少TCP连接。 在Linux中,有一个文件包含有关TCP连接的所有信息。 该文件的名称是/ proc / net / tcp 从那个文件我可以监控,但在Windows中有任何类似的文件,以便我可以监控该文件中的TCP数据。

2 个答案:

答案 0 :(得分:1)

您可以使用netstat命令。您可以使用RunTime类

从java执行此命令
        { 
            Process p=Runtime.getRuntime().exec("cmd /c netstat"); 
            p.waitFor(); 
            BufferedReader reader=new BufferedReader(
                new InputStreamReader(p.getInputStream())
            ); 
            String line=reader.readLine(); 
            while(line!=null) 
            { 
                System.out.println(line); 
                line=reader.readLine(); 
            } 

        }

答案 1 :(得分:0)

似乎JMX正是您所需要的。您没有指定所需的精确信息,但JVM提供了大量现成的统计信息,包括文件描述符的使用情况。您可能希望首先使用JConsole进行探索 - here是对Oracle的JConsole的介绍。

编辑:虽然似乎没有任何标准方法可以获得精确的TCP连接数,但是有一种特定于Linux的方法来获取打开文件描述符的总数:OperatingSystem.OpenFileDescriptorCount属性。