5 votes

ZMQError : Impossible d'attribuer l'adresse demandée

J'utilise zeromq pour développer une application dynamique qui fonctionne comme le protocole upnp (autoconfiguration et auto-découverte des équipements d'un salon). Pour ce faire, j'utilise zeromq pour distribuer des messages, mon problème est que lorsque je crée un socket et une liaison sur une adresse "169.254.1.0 à 169.254.254.255" Je reçois un message d'erreur comme celui-ci : ZMQError : Impossible d'attribuer l'adresse demandée .

J'ai essayé de comprendre pourquoi en changeant l'adresse par l'adresse locale (127.0.0.1), et ça marche ! !!. Le problème est que je suis en train d'implémenter autoip, ce qui signifie que je suis obligé d'utiliser l'adresse dans la plage 169.254.1.0 à 169.254.254.255.

Merci d'avance pour votre aide !

3voto

Pieter Hintjens Points 3677

Après avoir mis l'interface en service, vous devez obtenir son adresse IP et vous lier à elle. Vous pouvez également vous lier à "*", c'est-à-dire à toutes les interfaces.

2voto

Dan H Points 1889

J'ai eu cette erreur aussi... et j'ai réalisé que j'avais la mauvaise idée de qui se connectait à qui dans le modèle PUB/SUB.

Cela fonctionnait : l'hôte A comme PUB ZMQ, et pouvait facilement se connecter avec l'hôte A comme SUB ZMQ.

J'ai ensuite essayé de configurer l'hôte B en tant que SUB, et de faire en sorte que l'hôte A lui "envoie"... et j'ai continué à obtenir cette erreur. Après tout, n'avez-vous pas besoin d'indiquer à la PUB où envoyer les données ?

Non ! L'hôte A en tant que PUB doit toujours se lier à IP_ANY (0.0.0.0) ; c'est l'hôte B en tant que SUB qui doit être configuré avec l'adresse de l'hôte A.

Une fois que j'ai mis cela au clair dans mon code (et dans ma tête), j'étais opérationnel.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X