Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

MarianaLeal

Ajuda com Named Pipes!

Mensagens Recomendadas

MarianaLeal

Bom dia a todos :)

estou a desenvolver um programa de rotação de imagens, em que o cliente envia as informações da imagem para um servidor, que por sua vez envia essas informações a um dos seus processos filhos, que devolvem o resultado da rotação.

Qualquer um dos processos termina quando recebem um SIGINT ( fazer Ctrl C no terminal ).

O meu problema é o seguinte:

o cliente e o servidor comunicam através de um named pipe criado pelo servidor, e eu queria que quando o servidor termina ( fazendo close ao named pipe) , o cliente soubesse que esse pipe está fechado e que nao vale a pena mandar nada para ele..

Já tentei algumas coisas mas o cliente continua a tentar mandar informaçoes de qualquer modo..

Se alguem me pudesse ajudar ficava muito agradecida :)

thanks everyone

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

cria um protocolo de comunicação

caso correcto

  cliente            |             servidor
----------------------+----------------------------
     |
     +--- Posso enviar pedido ? ----->+
(esperar T tempo                      |
 pela resposta)                       |
                                      |
    +<------------------ sim podes ---+
    |
    +--- faz isto, por favor -------->+
                                      |
    +<----------------------- feito --+
    |
    +--- obrigada ------------------->+
                                      |
    +<-------------------- de nada ---+
    |
    V

exemplo de fecho do pipe

[code]
  cliente            |             servidor
----------------------+----------------------------
     |
     +--- Posso enviar pedido ? ----->+
(esperar T tempo
 pela resposta)
     .
     .
     V
  timeout
deve estar ocupado
  ou desligado
     |
     V

  • Voto 1

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Flinger

Quanto ao cliente saber quando o pipe foi fechado, acho que é possível através do SIGPIPE. Não te posso dar agora a certeza, mas podes brincar com ele um pouco a ver se faz o que queres, já que não tenho a certeza se o sinal é enviado quando o outro processo fecha o pipe ou se apenas quando o teu processo tenta escrever e não existem leitores.

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.