php添加ZMQ和MsgPack扩展

14 篇文章 0 订阅
6 篇文章 0 订阅

一,先把三个文件下载下来
zeromq-3.2.5.tar.gz
zmq-1.1.3.tgz
msgpack-2.0.2.tgz
多种办法都行,
办法1,找到地址 sudo wget url
办法2,我用的是vagrant,因此本地跟linux同步,所以,直接本地下载文件,放在共享目录里面,linux下面就有了,然后mv换个位置就行啦。
二,

sudo tar zxvf zeromq-3.2.5.tar.gz
cd zeromq-3.2.5
sudo ./configure
sudo make
sudo make install

sudo tar zxvf zmq-1.1.3.tgz
cd zmq-1.1.3
sudo phpize
sudo ./configure
sudo make
sudo make install

注:在上面 ./configure 这一步骤的时候,可能遇到错误提示如下:

configure: error: Please reinstall the pkg-config distribution

这是因为pkg-config没有安装,此时执行
sudo apt-get install pkg-config
再重新执行该命令,往下执行。
OK了!

四,

sudo tar zxvf msgpack-2.0.2.tgz
cd msgpack-2.0.2
sudo phpize 
sudo ./configure --with-php-config=/usr/bin/php-config
sudo make
sudo make install

五,
添加扩展到php.ini
六,
重启sudo /etc/init.d/php7.0-fpm restart
OK了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的使用msgpackzmq的C++项目模板,包括服务端和客户端的代码。这个模板可以让你快速地开始一个使用msgpackzmq进行数据交互的项目。 服务端代码: ```c++ #include <iostream> #include <zmq.hpp> #include <msgpack.hpp> int main() { zmq::context_t context(1); zmq::socket_t socket(context, ZMQ_REP); socket.bind("tcp://*:5555"); while (true) { zmq::message_t request; socket.recv(&request); // 解析请求数据 msgpack::object_handle oh = msgpack::unpack((const char*)request.data(), request.size()); msgpack::object obj = oh.get(); // 处理请求数据 std::string name; obj.convert(name); std::cout << "Received request: " << name << std::endl; // 发送响应数据 std::string response = "Hello, " + name + "!"; zmq::message_t reply(response.size()); memcpy(reply.data(), response.c_str(), response.size()); socket.send(reply); } return 0; } ``` 客户端代码: ```c++ #include <iostream> #include <zmq.hpp> #include <msgpack.hpp> int main() { zmq::context_t context(1); zmq::socket_t socket(context, ZMQ_REQ); socket.connect("tcp://localhost:5555"); // 发送请求数据 std::string name = "World"; msgpack::sbuffer sbuf; msgpack::pack(sbuf, name); zmq::message_t request(sbuf.data(), sbuf.size()); socket.send(request); // 接收响应数据 zmq::message_t reply; socket.recv(&reply); // 解析响应数据 std::string response((char*)reply.data(), reply.size()); std::cout << "Received response: " << response << std::endl; return 0; } ``` 这个模板使用了msgpack来序列化和反序列化数据,zmq来进行数据传输。服务端监听5555端口,客户端连接到localhost:5555。客户端发送一个字符串请求,服务端返回一个包含请求字符串的响应。 你可以根据自己的需求修改这个模板,比如使用不同的数据类型、修改监听端口、更改数据传输方式等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值