netstatcommand.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 100 行
JAVA
100 行
/*
* $Id: NetstatCommand.java,v 1.1 2003/11/25 11:52:27 epr Exp $
*/
package org.jnode.net.command;
import java.io.InputStream;
import java.io.PrintStream;
import java.util.Iterator;
import org.jnode.driver.net.NetworkException;
import org.jnode.net.NetworkLayer;
import org.jnode.net.NetworkLayerManager;
import org.jnode.net.TransportLayer;
import org.jnode.net.util.NetUtils;
import org.jnode.shell.CommandLine;
import org.jnode.util.Statistic;
import org.jnode.util.Statistics;
import org.jnode.shell.help.*;
/**
* @author epr
*/
public class NetstatCommand {
public static Help.Info HELP_INFO = new Help.Info(
"netstat",
"Print the statistics of all network devices"
);
public static void main(String[] args)
throws Exception {
new NetstatCommand().execute(new CommandLine(args), System.in, System.out, System.err);
}
/**
* Execute this command
*/
public void execute(
CommandLine cmdLine,
InputStream in,
PrintStream out,
PrintStream err)
throws Exception {
showStats(out);
}
private void showStats(PrintStream out)
throws NetworkException {
final NetworkLayerManager nlm = NetUtils.getNLM();
for (Iterator i = nlm.getNetworkLayers().iterator(); i.hasNext(); ) {
final NetworkLayer nl = (NetworkLayer)i.next();
showStats(out, nl, 80);
}
}
private void showStats(PrintStream out, NetworkLayer nl, int maxWidth)
throws NetworkException {
out.println(nl.getName() + ": ID " + nl.getProtocolID());
final String prefix = " ";
out.print(prefix);
showStats(out, nl.getStatistics(), maxWidth - prefix.length(), prefix);
for (Iterator i = nl.getTransportLayers().iterator(); i.hasNext(); ) {
final TransportLayer tl = (TransportLayer)i.next();
out.println(prefix + tl.getName() + ": ID " + tl.getProtocolID());
final String prefix2 = prefix + prefix;
out.print(prefix2);
showStats(out, tl.getStatistics(), maxWidth - prefix2.length(), prefix2);
//out.println();
}
out.println();
}
private void showStats(PrintStream out, Statistics stat, int maxWidth, String prefix)
throws NetworkException {
final Statistic[] list = stat.getStatistics();
if (list.length == 0) {
out.print("none");
} else {
int width = 0;
for (int i = 0; i < list.length; i++) {
final Statistic st = list[i];
String msg = st.getName() + " " + st.get();
if (i+1 < list.length) {
msg = msg + ", ";
}
if (width + msg.length() > maxWidth) {
out.println();
out.print(prefix);
width = 0;
}
out.print(msg);
width += msg.length();
}
}
out.println();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?