0

少し修正したサンプルpingプログラムを入手しました...

    String ip = "192.168.1.1 -t";
    String pingResult = "";      
    String pingCmd = "ping " + ip;

    try{

        Runtime r = Runtime.getRuntime();
        Process p = r.exec(pingCmd);

        Pattern pattern = Pattern.compile("time=(\\d+)ms");
        Matcher m = null;
        BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            m = pattern.matcher(inputLine);
            if (m.find()) {
                System.out.println(m.group(1));
            }
        }
        in.close();

    }
    catch (IOException e) {
        System.out.println(e);
    }

開始ボタンと終了ボタンを含む GUI を実装します。開始ボタンは機能しますが、終了ボタンは機能しません。終了ボタンをクリックすると、プログラムは rtt 時間の出力を表示しません。しかし、プログラムは実際には終了/停止しません。どうすれば完全にシャットダウンできますか、次のようなものを追加しますかRuntime.getRuntime().addShutdownHook

いくつかのヒントとガイドラインが必要です。上級者に感謝します...

4

2 に答える 2

0

ping の-nパラメーターを使用して、n 回の ping 後に開始するか、ユーザーが停止する必要がある場合は停止することができます。

ProcessOutputStream もあります。ping を停止したい場合は、Ctrl-C を送信してみてください。

于 2013-03-04T11:11:17.420 に答える
0
boolean isStoped=false;

while ((inputLine = in.readLine()) != null && (!isStoped)) {
            m = pattern.matcher(inputLine);
            if (m.find()) {
                System.out.println(m.group(1));
            }
        }

終了ボタンをクリックすると、 makeisStoped=trueと callが実行されます。p.destroy()これがあなたを助けることを願っています。

于 2013-03-23T19:44:11.727 に答える