/ / ZeroMQs router-dealer pattern. ¿Cómo manejar la dirección del cliente? - c ++, c, programación de red, zeromq

ZeroMQs router-dealer pattern. ¿Cómo manejar la dirección del cliente? - c ++, c, programación de red, zeromq

Utilizo el patrón de router-dealer de 0mq. Ahora quiero almacenar la dirección de los clientes. Sé que el primer mensaje del cliente es la dirección, IP + portno, supongo. O mejor recv() desde el zócalo del enrutador coloca la dirección frente a un paquete recibido. Pero, ¿cómo manejo esta dirección, p. imprimiendo o almacenándolo para otros mensajes salientes? ¿De qué tipo es?

Respuestas

3 para la respuesta № 1

Aquí está la explicación de la Guía sobre esto: http://zguide.zeromq.org/page:all#The-Request-Reply-Mechanisms

El ROUTER administra un conjunto de conexiones, ymantiene una "identidad" para cada conexión, que es un número aleatorio, como un identificador. Te dice esta identidad en cada mensaje, como primer cuadro. Es un valor binario, por lo que no puede imprimirlo tal como está.

El DISTRIBUIDOR puede anular el ROUTER internoidentidad diciéndole, "use esta ID" en el momento de la conexión. Eso es lo que hace la opción zmq_setsockopt ZMQ_IDENTITY. Usamos esto cuando los nodos tienen una ID única, a menudo de cadena, que tiene algún significado para la aplicación.


1 para la respuesta № 2

la primera parte del mensaje es la identidad del remitente (distribuidor) lo que puede establecer en el lado del distribuidor, con la zmq_setsockopt función (antes de conectarse al enrutador). es una cadena de 255 caracteres como máximo. Si no la configura, habrá algo único al azar, comenzando con # 0 caracteres.

por lo que no es el puerto ip + de su distribuidor por defecto, pero puede poner esa información si lo desea.