Pregunta

Tengo una aplicación donde potencialmente tengo muchos procesos que deben enviar un mensaje a un proceso. Pensé que la forma más conveniente de hacer esto sería enviar un datagrama UDP.

Al abrir un socket, necesito especificar qué puerto escuchar. Como solo quiero disparar y olvidar el datagrama UDP, me gustaría que el sistema operativo elija un puerto disponible. Prefiero no tener que buscar uno, especialmente porque muchas instancias de mi proceso pueden estar ejecutándose. ¿Hay alguna manera de decirle al sistema operativo que solo elija un puerto disponible (o mejor aún, ni siquiera abra un socket de escucha) para disparar y olvidar mi datagrama UDP?

¿Fue útil?

Solución

Sí Especifique 0 como el puerto. El sistema operativo elegirá un puerto disponible para usted.

Otros consejos

Respondiendo el " Problema " en lugar de la " Pregunta "

Si todos los procesos están funcionando en la misma PC, es posible que desee buscar archivos compartidos o algún otro medio de comunicación que no sea una pila de red.

Te sugiero que explores las opciones en la biblioteca Interprocess de Boost http://www.boost.org/doc/libs/ 1_37_0 / doc / html / interprocess.html

Guía rápida aquí: http://www.boost.org/doc/ libs / 1_37_0 / doc / html / interprocess / quick_guide.html

Específicamente, le sugiero que use una tubería con nombre o memoria compartida entre sus procesos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top