Domanda

Ho un'applicazione in cui ho potenzialmente molti processi che devono inviare un messaggio a un processo. Ho pensato che il modo più conveniente per farlo fosse semplicemente quello di inviare un datagramma UDP.

Quando apro un socket, devo specificare quale porta ascoltare. Dato che voglio solo sparare e dimenticare il datagramma UDP, vorrei solo che il sistema operativo scegliesse una porta disponibile. Preferirei non doverne cercare uno, soprattutto perché molti casi del mio processo potrebbero essere in esecuzione. C'è un modo in cui posso dire al sistema operativo di scegliere semplicemente una porta disponibile (o meglio ancora, nemmeno aprire un socket di ascolto) per sparare e dimenticare il mio datagramma UDP?

È stato utile?

Soluzione

Sì. Specifica 0 come porta. Il sistema operativo sceglierà una porta disponibile per te.

Altri suggerimenti

Risposta a " Problema " piuttosto che la "domanda"

Se tutti i processi funzionano sullo stesso PC, potresti voler esaminare i file condivisi o altri mezzi di comunicazione diversi dallo stack di rete.

Ti suggerirei di esplorare le opzioni nella libreria Interprocess di Boost http://www.boost.org/doc/libs/ 1_37_0 / doc / html / interprocess.html

Guida rapida qui: http://www.boost.org/doc/ libs / 1_37_0 / doc / html / tra processi / quick_guide.html

In particolare, ti suggerisco di usare una pipe denominata o una memoria condivisa tra i tuoi processi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top