Jump to content
MarianaLeal

Ajuda com Named Pipes!

Recommended Posts

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

Share this post


Link to post
Share on other 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

  • Vote 1

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

Share this post


Link to post
Share on other 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.

  • Vote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.