我使用 0MQ 的路由器经销商模式。现在我想存储客户的地址。我知道来自客户端的第一条消息是地址,我猜是 IP + portno。或者更确切地说recv()
,来自路由器套接字的地址放在接收到的数据包的前面。但是我如何处理这个地址,例如打印出来或存储它以供进一步传出消息?它是什么类型的?
问问题
1983 次
2 回答
3
这是对此的指南解释:http: //zguide.zeromq.org/page :all#The-Request-Reply-Mechanisms
ROUTER 管理一组连接,并为每个连接保留一个“身份”,它是一个随机数,就像一个句柄。它在每条消息上告诉你这个身份,作为第一帧。这是一个二进制值,因此您不能按原样打印它。
DEALER 可以通过在连接时告诉它“使用此 ID”来覆盖 ROUTER 的内部身份。这就是 zmq_setsockopt ZMQ_IDENTITY 选项的作用。当节点有一些唯一的、通常是字符串的、对应用程序有意义的 ID 时,我们会使用它。
于 2012-11-21T07:18:06.330 回答
1
消息的第一部分是发送者(经销商)的身份,您可以使用zmq_setsockopt功能在经销商端设置(在连接到路由器之前)。这是一个最大 255 字符长的字符串。如果你不设置它,会有一些随机的独特的东西,从#0 char 开始。
所以默认情况下它不是您的经销商的 ip+port,但如果您愿意,您可以将这些信息放在那里。
于 2012-11-10T01:21:37.120 回答