Question

J'ai une application dans laquelle plusieurs processus doivent potentiellement envoyer un message à un processus. J’imaginais que le moyen le plus opportun de le faire serait d’envoyer un datagramme UDP.

Lors de l'ouverture d'un socket, je dois spécifier le port d'écoute. Comme je veux juste tirer et oublier le datagramme UDP, j'aimerais simplement que le système d'exploitation choisisse un port disponible. Je préférerais ne pas avoir à en rechercher un, en particulier car plusieurs instances de mon processus peuvent s'exécuter. Existe-t-il un moyen de dire au système d'exploitation de choisir simplement un port disponible (ou mieux encore, même pas d'ouvrir une prise d'écoute) pour déclencher et oublier mon datagramme UDP?

Était-ce utile?

La solution

Oui. Spécifiez 0 comme port. Le système d'exploitation choisira un port disponible pour vous.

Autres conseils

Répondre au " Problème " plutôt que la "Question"

Si tous les processus fonctionnent sur le même PC, vous pouvez envisager des fichiers partagés ou un autre moyen de communication autre qu'une pile réseau.

Je vous suggérerais d'explorer les options de la bibliothèque Interprocess de Boost. http://www.boost.org/doc/libs/ 1_37_0 / doc / html / interprocess.html

Guide rapide ici: http://www.boost.org/doc/ libs / 1_37_0 / doc / html / interprocess / quick_guide.html

Plus précisément, je vous suggère d'utiliser un canal nommé ou une mémoire partagée entre vos processus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top