1

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

4

2 回答 2

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(); 
            } 

        }
于 2013-08-29T08:05:28.693 回答
0

看来JMX正是您所需要的。您没有指定需要哪些精确信息,但 JVM 提供了许多现成的统计信息,包括文件描述符使用情况。您可能想先使用 JConsole 来探索它 -是 Oracle 对 JConsole 的介绍。

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

于 2013-08-29T07:52:57.300 回答