最近已经使用了很长一段时间的zmq了,主要用于进程间通信 或者 线程间通信。在空闲之余对zmq的使用进行简单的demo演示,供有需要 的老铁,快速上手进行项目开发,也便于日后自我回顾。
【server】
//server.c
/* 1. create context
* 2. create socket
* 3. bind
* 4. recv */
#include <zmq.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
void *pctx = NULL;
void *psock = NULL;
const char *paddr = "tcp://*:9999";
if ((pctx = zmq_ctx_new()) == NULL) {
printf("create pctx error!\n");
return 0;
}
if ((psock = zmq_socket(pctx, ZMQ_DEALER)) == NULL) {
zmq_ctx_destroy(pctx);
printf("create socket error!\n");
return 0;
}
int irevtimeout = 5000;//millsecond
if (zmq_setsockopt(psock, ZMQ_RCVTIMEO, &irevtimeout, sizeof(irevtimeout)) < 0) {
zmq_close(psock);
zmq_ctx_destroy(pctx);
printf("setsockopt error!\n");
return 0;
}
if (zmq_bind(psock, paddr) < 0) {
zmq_close(psock);
zmq_ctx