为啥linux使用zeromq出现未定义zmq

为啥linux使用zeromq出现未定义zmq,第1张

Windows下VS2008使用ZeroMQ说明一、下载ZeroMQ

二、编译ZeroMQ库文件

解压zeromq-4.0.3.zip文件,进入builds\msvc目录,用VS打开*.sln工程文件,编译生成解决方案。编译完成后,会在lib目录下生成dll和lib文件

三、编写简单的测试工程

用VS新建2个项目,一个是server端,一个是client端

将ZeroMQ源码项目的include目录下的两个文件“zmq.h”,“zmq_utils.h”拷贝至自己新建的工程

将ZeroMQ源码项目的lib目录下的两个文件“libzmq.dll”,“libzmq.lib”拷贝至自己新建的工程

将文件“zmq.h”,“zmq_utils.h”和“libzmq.lib”添加进自己新建的项目。

client端代码:

#include <stdio.h>

#include <iostream>

#include <string.h>

#include "zeroMQ/zmq.h"

#include "zeroMQ/zmq_utils.h"

int main(int argc,char** argv)

优点: 快,可以用C写,

封装了基本功能, socket重连,分包功能,定义了交互模式等。

缺点:

socket概念和posix socket 概率你有冲突。

基础库是用C++实现。这个问题0mq作者自己也吐槽过。

zero MQ 有在努力成 linux网络协议栈一部分。但感觉可能性不大。不是所有人喜欢这种封装的方式。对其内部的实现机制和协议在网上讨论很少,还是一个比较小众的框架。

简单好用的传输层

ZMQ是什么?

这是个类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错误等,

而ZMQ屏蔽了这些细节,让你的网络编程更为简单。ZMQ用于node与node间的通信,node可以是主机或者是进程。

引用官方的说法: “ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间d性伸缩。

ZMQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”。还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD套接字之上的一 层封装。ZMQ让编写高性能网络应用程序极为简单和有趣。”


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7262996.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存