Utilização de Pipe

4 respostas
G

Gostaria de saber sobre a utilizaçao de pipe para comunicação entre Threads, é possivel utilizar pipe para comunicar entre aplicações diferentes, executando na mesma máquina?

4 Respostas

T

Thread != Aplicação
No caso de 2 aplicações uma Pipe é uma comunicação unidirecional. Normalmente não é necessário nada especial, apenas que a primeira aplicação sempre escreva na saída-padrão (System.out) e a segunda sempre leia da entrada-padrão (System.in). Exemplo no Unix:

ls | more

J

Entre threads não costumo complicar, acabo trocando serviços atraves de listas sincronizadas e compartilhadas entre as threads.

Para comunicação entre aplicações usando pipe, dê uma olhadinha em http://www.inf.ufsc.br/~frank/INE5645/5.%20Comunicacao%20entre%20Processos.pdf
, nas pags 3 e 4 tem um exemplo legal.

G

Jeferson Flamini, obrigado pelo exemplo.

O meu problema é o seguinte tenho uma apliação (JNLP) que chama a execução de outra aplicação (JNLP), preciso que a aplicaçao chamada envie dados para a aplicação chamadora. Conseguir fazer a comunicação entre os aplicativos através de um arquivo comum, onde uma fica constantemente buscando informações, deste modo esta funcionando, mas gostaria de um método mais adequado, que não necessita acessar diretamente arquivo. Existe uma outra maneira de realizar a comunicação sem ser através de arquivo ou sockets?

T

Nesse caso você deve usar sockets mesmo, já que você tem 2 aplicações gráficas.
Não há uma forma “portável” de comunicação entre aplicações que não seja essa (sockets).
(Se fossem 2 aplicações Java iniciadas por um script, não JNLP, então poderíamos usar esses pipes.)

Criado 14 de junho de 2007
Ultima resposta 14 de jun. de 2007
Respostas 4
Participantes 3