2012-11-09 131 views
0

我使用0mq中的router-dealer模式。現在我想存儲客戶端地址。我知道來自客戶端的第一條消息是地址,IP + portno,我猜。或者,來自路由器套接字的recv()將地址放在收到的分區前。但我該如何處理這個地址,例如打印出來還是存儲起來以便傳出更多消息?它是什麼類型?ZeroMQs路由器 - 經銷商模式。如何處理客戶地址?

回答

3

這裏的指南說明這個:http://zguide.zeromq.org/page:all#The-Request-Reply-Mechanisms

路由器管理一組的連接,並保持每一個連接,這是一個隨機數,如手柄上的「身份」。它將每個消息的身份告訴你,作爲第一幀。這是一個二進制值,所以你不能按原樣打印它。

經銷商可以通過在連接時告訴它「使用此ID」來覆蓋ROUTER的內部身份。這就是zmq_setsockopt ZMQ_IDENTITY選項的作用。當節點具有一些唯一的,通常是字符串的ID時,我們使用這個ID對應用程序有一些意義。

1

郵件的第一部分是發件人(經銷商)的身份,您可以在經銷商一側使用zmq_setsockopt功能(在連接到路由器之前)進行設置。它是最長255個字符的字符串。如果你沒有設置它,會有一些隨機的獨特的事情,從#0字符開始。

所以它不是默認情況下您的經銷商的IP +端口,但如果您喜歡,您可以在那裏放置該信息。

相關問題