Linux上的ZeroMQ epgm错误:不支持协议

时间:2014-01-27 21:15:57

标签: c++ linux zeromq

我正在尝试在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

感谢您的帮助

1 个答案:

答案 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文件夹中的版本)