Soy un novato en ZERMQ. ZeroMQ ha TCP, INPROC y el IPC de transportes. Estoy buscando ejemplos usando python y inproc en Winx64 y python 2.7, que también podría ser utilizado para linux.

También, he estado buscando UDP métodos de transporte y no puedo encontrar ejemplos.

El único ejemplo que he encontrado es

import zmq
import zhelpers

context = zmq.Context()

sink = context.socket(zmq.ROUTER)
sink.bind("inproc://example")

# First allow 0MQ to set the identity
anonymous = context.socket(zmq.XREQ)
anonymous.connect("inproc://example")
anonymous.send("XREP uses a generated UUID")
zhelpers.dump(sink)

# Then set the identity ourself
identified = context.socket(zmq.XREQ)
identified.setsockopt(zmq.IDENTITY, "Hello")
identified.connect("inproc://example")
identified.send("XREP socket uses REQ's socket identity")
zhelpers.dump(sink)

El caso de uso que estoy pensando es: UDP como la distribución de la información. Prueba de Inserción/Extracción mediante TCP es más rápido o proceso sea más rápido.

Aquí el ejemplo de prueba>…………..

Servidor:

import zmq
import time

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("inproc://example2")

while True:
    #  Wait for next request from client
    message = socket.recv()
    print "Received request: ", message

    #  Do some 'work'
    time.sleep (1)        #   Do some 'work'

    #  Send reply back to client
    socket.send("World")

Cliente:

import zmq

context = zmq.Context()

#  Socket to talk to server
print "Connecting to hello world server..."
socket = context.socket(zmq.REQ)
socket.connect ("inproc://example2")

#  Do 10 requests, waiting each time for a response
for request in range (1,10):
    print "Sending request ", request,"..."
    socket.send ("Hello")

    #  Get the reply.
    message = socket.recv()
    print "Received reply ", request, "[", message, "]"

Mensaje De Error:

 socket.connect ("inproc://example2")
File "socket.pyx", line 547, in zmq.core.socket.Socket.connect (zmq\core\socket.c:5347)
zmq.core.error.ZMQError: Connection refused

OriginalEl autor Merlin | 2011-12-13

4 Comentarios

  1. 13

    Al mejor de mi conocimiento, UDP no es compatible con 0MQ. También, el IPC sólo es compatible con sistemas operativos que tienen un POSIX conformes con la implementación de las canalizaciones; así, en Windows, usted puede realmente sólo el uso de ‘proceso’, TCP, o PGM. Sin embargo, por encima y más allá de todo esto, uno de 0MQ principales características es que su protocolo es sólo una parte de la dirección. Usted puede tomar cualquier ejemplo, cambiar la dirección de socket, y todo lo que todavía funciona muy bien (sujeto, por supuesto, a la mencionada restricciones). También, el ZGuide tiene muchos ejemplos (un buen número de los cuales están disponibles en Python).

    Por favor vea las ediciones….agregó ejemplo…de mensaje de error.
    son estas en proceso separado? porque ‘proceso’ sólo es adecuado como un reemplazo para el roscado de los escenarios.
    buscando por ejemplo para probar….en python, se puede apuntar a cualquier
    aquí está la forma básica de: http://zguide.zeromq.org/py:mtserver. Más detalles están disponibles aquí: http://zguide.zeromq.org/page:all#Multithreading-with-MQ.
    Yo creo que se lee mal el comentario. inproc funcionará en todas las plataformas. En Windows, usted simplemente no puede usar IPC.

    OriginalEl autor pblasucci

  2. 9

    Si (y sólo si) se puede utilizar el ZMQ_PUB o ZMQ_SUB sockets – que no hacer en los ejemplos que dio, donde el uso de ROUTER, XREQ, etc – se puede utilizar UDP, o más precisamente, UDP multicast a través de

    «epgm://host:port»

    EPGM significa Encapsulated PGM, es decir, PGM encapsulado en UDP, que es más compatible con la infraestructura de red existente de raw PGM.

    Ver también http://api.zeromq.org/2-1:zmq-pgm

    No sé de cualquier UDP apoyo de unidifusión escenarios, aunque.

    OriginalEl autor Eugene Beresovsky

  3. 4

    ZeroMQ ha thread-safe UDP apoyo de Marzo de 2016:

    • Usted tiene que utilizar la Radio/Plato patrón (muy similar a la de Pub/Sub)
    • Apoyado en libzmq y czmq
    • Ver tests/test_udp.cpp, tests/test_radio_dish.cppen el libzmq código fuente
    • Desglose completo providided por Doron Somech en [email protected] lista hilo: Los subprocesos Pub/Sub y de Multidifusión
    El enlace a la lista de correo está roto, ir aquí en lugar de
    gracias! He actualizado el enlace.

    OriginalEl autor Hitster GTD

  4. 0

    Tuve el mismo problema cuando mi pyzmq y zmq la versión es de una versión anterior, puedo actualizar la versión a la 15.2.0, luego de resuelto el problema, el ipc prefijo de la dirección que he usado es «inproc://»

    os: win7-64
    python: 2.7.6

    OriginalEl autor Greling

Dejar respuesta

Please enter your comment!
Please enter your name here