1 简单介绍
ZMQ(ØMQ、ZeroMQ, 0MQ)看起来像是一套嵌入式的网络链接库,但工作起来更像是一个并发式的框架。它提供的套接字可以在多种协议中传输消息,如线程间、进程间、TCP、广播等。你可以使用套接字构建多对多的连接模式,如扇出、发布-订阅、任务分发、请求-应答等。ZMQ的快速足以胜任集群应用产品。它的异步I/O机制让你能够构建多核应用程序,完成异步消息处理任务。ZMQ有着多语言支持,并能在几乎所有的操作系统上运行。ZMQ是iMatix公司的产品,以LGPL开源协议发布。
一开始ZMQ代表零中间件、零延迟,同时,它又有了新的含义:零管理、零成本、零浪费。总的来说,零表示最小、最简,这是贯穿于该项目的哲理。我们致力于减少复杂程度,提高易用性。
环境搭建
项目将在Ubuntu QtCreator下开发,需要在Ubuntu下安装libzmq,到github上下载https://github.com/zeromq/libzmq,例如:libzmq-master.zip
where@ubuntu:~$ unzip libzmq-master.zip where@ubuntu:~$ cd libzmq-master where@ubuntu:~$ ./autogen.sh where@ubuntu:~$ ./configure where@ubuntu:~$ make where@ubuntu:~$ sudo make install where@ubuntu:~$ sudo ldconfig
2 经典API
套接字事实上是用于网络编程的标准接口,ZMQ之所那么吸引人眼球,原因之一就是它是建立在标准套接字API之上。因此,ZMQ的套接字操作非常容易理解,其生命周期主要包含四个部分:
创建和销毁套接字:zmq_socket(), zmq_close()
配置和读取套接字选项:zmq_setsockopt(), zmq_getsockopt()
为套接字建立连接:zmq_bind(), zmq_connect()
发送和接收消息:zmq_send(), zmq_recv()