sudo apt-get install libtool pkg-config build-essential autoconf automake
git clone git://github.com/jedisct1/libsodium.git
cd libsodium
./autogen.sh
./configure
make check
sudo make install
sudo ldconfig
cd ../
git clone git://github.com/zeromq/libzmq.git
cd libzmq
./autogen.sh
./configure –with-libsodium
make
sudo make install
sudo ldconfig
cd ../
添加编译选项 -lczmq -lzmq。
git clone git://github.com/zeromq/czmq.git
cd czmq
./autogen.sh
./configure && make check
sudo make install
sudo ldconfig
cd -
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh # bootstrap-vcpkg.bat for Powershell
./vcpkg integrate install
./vcpkg install cppzmq
cd -
cmake下使用,需要再CMakeList文件中添加如下内容:
#find cppzmq wrapper, installed by make of cppzmq
find_package(cppzmq)
target_link_libraries(*Your Project Name* cppzmq)
C++开发可以参考如下实例代码进行开发工作:
server端:
#include int main()
{zmq::context_t ctx;zmq::socket_t sock(ctx, zmq::socket_type::push);sock.bind("inproc://test");sock.send(zmq::str_buffer("Hello, world"), zmq::send_flags::dontwait);
}
Client端:
#include
#include int main()
{zmq::context_t ctx;zmq::socket_t sock1(ctx, zmq::socket_type::push);zmq::socket_t sock2(ctx, zmq::socket_type::pull);sock1.bind("tcp://127.0.0.1:*");const std::string last_endpoint =sock1.get(zmq::sockopt::last_endpoint);std::cout << "Connecting to "<< last_endpoint << std::endl;sock2.connect(last_endpoint);std::array send_msgs = {zmq::str_buffer("foo"),zmq::str_buffer("bar!")};if (!zmq::send_multipart(sock1, send_msgs)) {return 1;}std::vector recv_msgs;const auto ret = zmq::recv_multipart(sock2, std::back_inserter(recv_msgs));if (!ret) {return 1;}std::cout << "Got " << *ret<< " messages" << std::endl;return 0;
}