Ubuntu 下搭建 zmq + c/c++ 开发环境
1. 下载zmq 的源码
2. 解压,
3. 进入builds 目录下的 cmake目录
4. sudo ./ **.sh
5. 在build_make目录下有生成文件,
6. 将bind_make目录下的lib文件复制到上一个目录下
7.在/etc/profile 修改环境变量
export C_INCLUDE_PATH=$C_INCLUDE_PATH:$HOME/libzmq/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH::$HOME/libzmq/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/libzmq/lib
export LIBRARY_PATH=$LIBRARY_PATH:$HOME/libzmq/lib
8. source /etc/profile
9.测试
example:
#include <stdio.h>
extern “C”{
#include <zmq.h>
#include <zmq_utils.h>
}
#pragma comment(lib,”libzmq_d.lib”)
int main(int argc, char* argv[])
{
void * pCtx = NULL;
void * pSock = NULL;
//使用tcp协议进行通信,需要连接的目标机器IP地址为192.168.1.2
//通信使用的网络端口 为7766
const char * pAddr = “tcp://127.0.0.1:5050”;
//创建context
if ((pCtx = zmq_ctx_new()) == NULL)
{
return 0;
}
//创建socket
if ((pSock = zmq_socket(pCtx, ZMQ_DEALER)) == NULL)
{
zmq_ctx_destroy(pCtx);
return 0;
}
int iSndTimeout = 5000;// millsecond
//设置接收超时
if (zmq_setsockopt(pSock, ZMQ_RCVTIMEO, &iSndTimeout, sizeof(iSndTimeout)) < 0)
{
zmq_close(pSock);
zmq_ctx_destroy(pCtx);
return 0;
}
//连接目标IP192.168.1.2,端口7766
if (zmq_connect(pSock, pAddr) < 0)
{
zmq_close(pSock);
zmq_ctx_destroy(pCtx);
return 0;
}
//循环发送消息
while (1)
{
static int i = 0;
char szMsg[1024] = { 0 };
sprintf(szMsg, “hello world : %3d”, i++);
printf(“Enter to send…\n”);
if (zmq_send(pSock, szMsg, sizeof(szMsg), 0) < 0)
{
fprintf(stderr, “send message faild\n”);
continue;
}
printf(“send message : [%s] succeed\n”, szMsg);
getchar();
}
return 0;
}
搭建完毕,可以进行测试le