Pergunta

Eu tenho um aplicativo onde eu tenho potencialmente muitos processos devem enviar uma mensagem para um processo. Imaginei que a maneira mais conveniente de fazer isso seria apenas para enviar um datagrama UDP.

Ao abrir um soquete, eu preciso especificar a porta para ouvir. Como eu só quero fogo e esquecer o datagrama UDP, eu gostaria de ter apenas o sistema operacional escolher uma porta disponível. Eu prefiro não ter que caçar para um, especialmente porque muitos casos de meu processo pode ser executado. Existe uma maneira que eu posso dizer ao sistema operacional para escolher apenas uma porta disponível (ou melhor ainda, nem mesmo abrir um socket de escuta) ao fogo e esquecer o meu datagrama UDP?

Foi útil?

Solução

Sim. Especificar 0 como a porta. O sistema operacional irá escolher uma porta disponível para você.

Outras dicas

Respondendo o "problema" em vez de "Pergunta"

Se todos os processos estão operando no mesmo PC, você pode querer olhar para arquivos compartilhados ou algum outro meio de outros do que uma pilha de rede de comunicações.

Eu sugiro que você explorar as opções na biblioteca Interprocess Boost http://www.boost.org/doc/libs/ 1_37_0 / doc / html / interprocess.html

Guia rápido aqui: http://www.boost.org/doc/ libs / 1_37_0 / doc / html / interprocess / quick_guide.html

Especificamente, eu sugiro que você use um pipe nomeado ou de memória compartilhada entre os processos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top