auto pzmq_ctx_new = g_dllzmq.getDllFunc<void*()>("zmq_ctx_new"); auto pzmq_socket = g_dllzmq.getDllFunc<void*(void *context, int type)>("zmq_socket"); auto pzmq_bind = g_dllzmq.getDllFunc<int(void *socket, const char *endpoint)>("zmq_bind"); auto pzmq_recv = g_dllzmq.getDllFunc<int(void *socket, void *buf, size_t len, int flags)>("zmq_recv"); auto pzmq_send = g_dllzmq.getDllFunc<int(void *socket, void *buf, size_t len, int flags)>("zmq_send"); auto pzmq_close = g_dllzmq.getDllFunc<int(void *socket)>("zmq_close"); auto pzmq_ctx_destroy = g_dllzmq.getDllFunc<int(void *context)>("zmq_ctx_destroy"); auto pzmq_setsockopt = g_dllzmq.getDllFunc<int(void *socket, int option_name, const void *option_value, size_t option_len)>("zmq_setsockopt");
void* pCtx = pzmq_ctx_new();
void *publisher = pzmq_socket(pCtx, ZMQ_PUB); int rc = pzmq_bind(publisher, "tcp://*:5563"); assert(rc == 0);
while (FLAG_EXIT_WORKTHREAD != (pwnd->m_iFlag&FLAG_EXIT_WORKTHREAD)) { pzmq_send(publisher, "A", 1, ZMQ_SNDMORE); pzmq_send(publisher, "Hi World", strlen("Hi World"), 0);
pzmq_send(publisher, "B", 1, ZMQ_SNDMORE); pzmq_send(publisher, "Hello World", strlen("Hello World"), 0);
Sleep(3000); } pzmq_close(publisher); pzmq_ctx_destroy(pCtx);
|