La Red de Conocimientos Pedagógicos - Currículum vitae - Cómo usar zeromq en Windows

Cómo usar zeromq en Windows

Instrucciones para usar ZeroMQ con VS2008 en Windows

1. Descargue ZeroMQ

2 Compile el archivo de biblioteca ZeroMQ

Descomprima zeromq. 4.0.3 Archivo .zip, ingrese al directorio builds\msvc, abra el archivo de proyecto *.sln con VS, compile y genere la solución. Una vez completada la compilación, se generarán archivos dll y lib en el directorio lib

3 Escriba un proyecto de prueba simple

Use VS para crear 2 proyectos nuevos, uno es el lado del servidor. y el otro es el cliente

Copie los dos archivos "zmq.h" y "zmq_utils.h" en el directorio de inclusión del proyecto de código fuente ZeroMQ a su proyecto recién creado

Copie la biblioteca del proyecto de código fuente ZeroMQ. Copie los dos archivos "libzmq.dll" y "libzmq.lib" en el directorio de su proyecto recién creado

Agregue los archivos "zmq.h", "zmq_utils .h" y "libzmq.lib" Ingrese su propio proyecto nuevo.

Código de cliente:

#include

#include

#include

#include "zeroMQ/zmq.h"

#include "zeroMQ/zmq_utils.h"

int main(int argc,char** argv )

{

//variables relacionadas con zeroMQ

void * m_context;

void * m_subscriber;

char m_pubAddr[64];

m_context = zmq_init (1);

m_subscriber = zmq_socket (m_context, ZMQ_SUB);

//Suscribir

char * puberIP = "127.0.0.1";

WORD puberPort = 8585;

memset(m_pubAddr,0,sizeof(m_pubAddr));

sprintf(m_pubAddr,"tcp://%s:%d",puberIP,puberPort);

//zmq_connect (m_subscriber, "tcp://localhost:5556");

zmq_connect (m_subscriber, m_pubAddr);

int ret = zmq_setsockopt (m_subscriber, ZMQ_SUBSCRIBE, NULL, 0);

while(1)

{

BYTE buf[1024] = {0};

DWORD buflen = sizeof(buf);

DWORD gotLen = zmq_recv(m_subscriber,buf,buflen, 0 );

printf("Información de publicación recibida: %s\n",buf);

}

zmq_close (m_subscriber);

zmq_term (m_context);

return 0;

}

6. Código del lado del servidor:

#include< stdio .h>

#include

#include

#include "zeroMQ/zmq.h"

#include "zeroMQ/zmq_utils.h"

int main(int argc,char** argv)

{

char pubLocalAddr[ 64 ] = {0};

sprintf(pubLocalAddr,"tcp://*:%d",8585);

//variables relacionadas con zeroMQ

void * m_context;

void * m_publisher;

m_context = zmq_init (1);

m_publisher = zmq_socket (m_context, ZMQ_PUB);

zm

q_bind (m_publisher, pubLocalAddr);

char *msg = "1231321";

while(1)

{

DWORD sendlen = zmq_send(m_publisher,msg,strlen(msg),0);

printf("Publicar información: %s\n",msg);

Sleep(1000);

}

zmq_close (m_publisher);

zmq_term (m_context);

devolver 1;

}