1

コマンドをルーターに送信するための「expect」タイプの実装を作成しました。

私が観察しているのは、接続からの入力の処理がはるかに遅いことです。

私のコードは次のとおりです。

public static String expect(String expectString) {
        try {
            int c = 0;
            while ((c = br.read()) != -1) {
                expectBuffer.append((char) c);
                System.out.print((char) c);
                if (expectBuffer.toString().contains(expectString)) {
                    break;
                }
            }
            String expBuff = expectBuffer.toString();
            expectBuffer.setLength(0);
//            System.out.println(expBuff);
            return expBuff;
        } catch (Exception e) {
            return "";
        }

    }

    public static void send(String cmd) {
        pw.print(cmd + "\r");
        pw.flush();
    }

から、main以下のように呼び出します。

            socket = new Socket();
            socket.connect(new InetSocketAddress(server, 23), 10000);//Will wait for 10 seconds
            socket.setKeepAlive(true);
            socket.setSoTimeout(10000);
            expectBuffer = new StringBuilder();
            br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            pw = new PrintWriter(socket.getOutputStream(), true);
            expect("Login");
            send("dinesh");
            expect("Password");
            send("stack");
            expect(server + "#");
            send("some command here");
            expect(server + "#");

コンソールで入力と出力を処理するのに時間がかかります。

誰でも私のコードの改善に関する提案を提供できますか?

前もって感謝します。

4

1 に答える 1