2012-12-07 90 views
3

我正在使用zeromq开发动态应用程序,其操作方式类似upnp协议(客厅上的设备自动配置和自动发现)。 要这样做,我使用zeromq来分发消息,我的问题是,当我创建一个套接字并绑定到地址“169.254.1.0到169.254.254.255”,我收到如下错误消息:ZMQError:无法分配请求的地址ZMQError:无法分配请求的地址

我试图找出为什么通过本地地址(127.0.0.1)更改地址,它的作品! 问题是,我正在实现autoip,这意味着我很想使用169.254.1.0到169.254.254.255范围内的adresse。

在此先感谢您的帮助!

回答

2

将界面向上,您需要获取其IP地址,然后进行绑定。或者,您可以绑定“*”,即所有接口。

+0

好吧,我认为这是,谢谢 – scof007

+0

我遵循你的建议,但我仍然得到一个错误,当我做socket.connect(“tcp://169.254.1.4:5554”)它的工作,但通过使插座.bind(“tcp://169.254.1.3:5553”),我仍然遇到错误。你在说什么接口?,它是wlan0,eth0等......接口还是......, – scof007

+0

我不知道你系统上的接口。你还没有告诉我们关于操作系统或你正在使用的其他技术的任何信息。你是否试图在“*”界面上绑定(在启动后)? –

0

我也得到了这个错误......我意识到我错误地认识了谁在连接到PUB/SUB模型中的人。

这是工作:主机A作为ZMQ PUB,并可以轻松连接主机A作为ZMQ SUB。

然后我尝试将主机B设置为SUB,并让主机A“发送”到...并且我不断收到此错误。毕竟你不需要告诉PUB在哪里发送数据?

不!主机A作为PUB仍应绑定到IP_ANY(0.0.0.0);它是Host B作为SUB必须配置主机A的地址。

一旦我在代码中(并在我的头上)得到了这个直接的结果,我就开始运行了。

相关问题