Как взаимодействовать с приложением, запущенным из муравья? - PullRequest
0 голосов
/ 02 марта 2011

В процессе создания P2P-приложения для класса я запускаю несколько пиров из файла сборки ant, а затем запускаю его в «интерактивном» режиме.

В документации по задаче ant указано, что однаможет взаимодействовать с разветвленным приложением, поскольку ant-1.6.3

Код для чтения ввода:


while (true) {
                System.out.println("> ");
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        System.in));
                String cmd = "";
                try {
                    cmd = br.readLine();
                    System.out.println(cmd + "hier");
                    if (cmd == null)
                        continue;
                    if (cmd.equals("hello")) {
                        System.out.println("Port: ");
                        int bsPort = new Integer(br.readLine());
                        System.out.println("IP (blank for localhost): ");
                        String bsIp = br.readLine();
                        if (bsIp.equals(""))
                            bsIp = "127.0.0.1";
                        bootstrap(bsIp, bsPort);
                    }
                    else if (cmd.equals("plist")) {
                        plist();
                    }
                    else if (cmd.equals("nlist")) {
                        nlist();
                    }
                    else {
                        System.out.println("Command was read as: " + cmd);
                    }

                } catch (IOException ioe) {
                    System.out.println("IO error trying to read your command!");
                    System.exit(1);
                }

Соответствующая задача муравья:

Задача муравья можеточевидно, не будет отображаться SO, но это в основном блок java fork = "false".

Следует отметить, что я запускаю блоки root и последующие одноранговые узлы параллельно -> daemons, чтобы они работали в фоновом режиме,Они разветвлены.

Я пробовал с fork = "true" и fork = "false" (найти ссылку, в которой указано, что она установлена ​​в false) - оба безрезультатно.

Iнашел одну ссылку, говорящую, что я могу использовать TimedBufferedReader, но я немного осторожен, чтобы делать это только для того, чтобы угодить муравью ...

1 Ответ

0 голосов
/ 05 марта 2011

Похоже, задачи демона взломали System.in.Установка аргумента inputtring = "" для тех, кто сделал это, помешала им сделать это, и позвольте мне взаимодействовать с интерактивным клиентом.

Просто, чтобы другие знали, если один выводится через System.out.print вместо System.out.println, никто не увидит вывод до того, как дал ввод ...

...