我正在尝试在Linux上使用zmq进行多播。我的程序在试图绑定到epgm地址的行上死掉。
我在VC ++中运行完全相同的代码,而我在同一主机上运行客户端和服务器并运行正常。然而,根据我在本网站上的其他程序员所读到的内容,zmq不支持环回功能,因此我无法使用epgm在同一主机上发布和接收消息。
我将程序移动到linux框,我收到错误。以下是代码和错误,您是否知道这个错误与我使用无效的Linux for IP有什么关系?
zmq::context_t context( 1 );
zmq::socket_t publisher( context, ZMQ_PUB );
publisher.bind( "epgm://224.0.0.1:5555" );
错误行是绑定行。
错误是:
terminate called after throwing an instance of 'zmq::error_t'
what(): Protocol not supported
感谢您的帮助
答案 0 :(得分:1)
我找到了解决这个问题的方法。
显然当你打算使用zmq进行多播(pgm或epgm)时,你必须在启用了pgm的情况下运行./configure,然后再进行make。
这个libpgm是必需的
在查看文件夹/ foreign /下提取的tar zmq tar文件时,有一个libpgm tar文件。
所以我跑了:
./configure --with-pgm=libpgm-5.2.122~dfsg
make
sudo make install
这解决了问题,我现在能够使用epgm进行绑定。
(显然libpgm的版本将是zmq文件夹中的版本)