Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > Передача данных между двумя апплетами


Автор: Vofka 22.3.2007, 16:08
Есть ли возможность передавать данные между двумя апплетами, через потоки?Полазил в апи нашел только как вызывать методы из одног апплета в другом.

Автор: AntonSaburov 22.3.2007, 17:10
Нет. Каждый аппелт работает автономно. Можно конечно извратиться:

1. Попробовать взаимодействовать через JavScript - но я пока слабо представляю как
2. Разрешить открывать сокеты апплетам
3. Пусть апплеты организуют коннект с хостом, с которого они скачаны (это можно любому апплету). А там будет стоять программа, которая будет служить на прием-передачу

Автор: Vofka 22.3.2007, 17:58
Не знаю я вот нашел пример через PipedWriter.

Автор: Vofka 22.3.2007, 18:29
по кнопочке в пайп пишется значение
Код

    private void jButton1_actionPerformed(ActionEvent e) {


        try {
            PipedWriter pw = new PipedWriter();
            Applet2.setpipe(pw);
            pw.write(jTextArea1.getText());
            pw.flush();
            pw.close();
          } catch (IOException f) {
           System.out.println(f.getMessage());
        }
    }

 потом пайп передается во второй апплет
и там читается


Код

    public static void setpipe(PipedWriter pr){


        try {
            pread=new PipedReader(pr);
           
        } catch (IOException e) {
            // TODO
        }
    }

                       
                 


Код

             try {
                              BufferedReader br=new BufferedReader(pread);
                            String s=br.readLine();
                            if(s!=""){
                              jTextArea1.setText(s);
                              }
                              } catch (Exception f) {
                                  // TODO
                              } 

Автор: AntonSaburov 22.3.2007, 19:26
А причем тут PipeWriter/Reader ? Pipe - это фактически потоковый ввод/вывод. И как апплеты через него могут связаться - с чего вдруг ?

Откуда здесь апплеты ? Почитай про этот класс - http://java.sun.com/developer/JDCTechTips/2001/tt0208.html

Автор: COVD 22.3.2007, 21:40
Они пишут:

"Piped streams are a mechanism in the Java I/O library to set up a stream of data between two threads."

То, что это потоки одного приложения (два апплета - это два разных приложения) наверное настолько очевидно, что про это не упоминается. smile

Автор: Vofka 23.3.2007, 14:05
ну слово потоковый тут же присутсвует  smile . и апплеты нормально через него связываются.у меня работает просто я из одного апплета в другой передаю PipedWriter и соответственно в одном пишу в него а в другом читаю. 

Автор: COVD 23.3.2007, 15:21
да, действительно, если апплеты в одном браузере, т.е. под одной JVM, то они могут друг друга найти. 
Здесь подробно расписано http://www.wutka.com/hackingjava/ch10.htm  smile 

Автор: Vofka 23.3.2007, 17:03
Ну да в этом примере просто передается InputStream а я пайпы но технология таже.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)