2012-12-07 153 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的地址。

一旦我在代碼中(並在我的頭上)得到了這個直接的結果,我就開始運行了。

相關問題