ZeroMQ路由器 - 经销商模式。如何处理客户地址?

时间:2012-11-09 19:02:55

标签: c++ c network-programming zeromq

我使用0MQ的路由器经销商模式。现在我想存储客户端的地址。我知道来自客户端的第一条消息是地址,IP + portno我猜。或者更确切地说,来自路由器套接字的recv()将地址放在收到的数据包前面。但是我如何处理这个地址,例如打印或存储它以获得更多传出消息?它是什么类型的?

2 个答案:

答案 0 :(得分:3)

以下是指南对此的解释:http://zguide.zeromq.org/page:all#The-Request-Reply-Mechanisms

ROUTER管理一组连接,并为每个连接保留一个“标识”,这是一个随机数,就像一个句柄。它会在每条消息上告诉您这个身份,作为第一帧。它是二进制值,因此您无法按原样打印。

DEALER可以通过在连接时告诉它“使用此ID”来覆盖ROUTER的内部标识。这就是zmq_setsockopt ZMQ_IDENTITY选项的作用。当节点有一些唯一的,通常是字符串的ID时,我们会使用它,这对应用程序有一些意义。

答案 1 :(得分:1)

消息的第一部分是发件人(经销商)的身份,您可以在经销商方面使用zmq_setsockopt功能(在连接到路由器之前)设置。它是一个最多255个字符长的字符串。如果你没有设置它,会有一些随机的独特的东西,从#0 char。

开始

所以默认情况下它不是你的经销商的ip +端口,但如果你愿意,可以把信息放在那里。