ZMQ在Publisher Socket上生成EAGAIN

时间:2014-10-19 23:25:28

标签: c++ zeromq

我已经制作了一个简单的C ++程序来开始使用0MQ。我有两个应用程序:一个服务器(带有绑定发布者套接字)和一个客户端(带有连接订阅者)套接字。服务器程序从远程计算机中拉出并运行 - 我们称之为example.com。

当服务器发送带有无标志的简单字符串消息时,ZMQ正在生成 EAGAIN 。通过查看我正在使用的ZMQ CPP绑定,我知道这一点;仅当引发此错误时,socket_t :: send()函数才返回false。我没有使用返回整数的函数,我确定返回值是布尔值假。

当客户端运行并连接时,该功能仍然存在。机器打开所有传入和传出端口。

为什么ZMQ会产生此错误?特别是,EAGAIN只应在非阻塞模式下引发,但我特别从不要求这种模式。这是发布者套接字的功能吗?

1 个答案:

答案 0 :(得分:0)

发送消息时,PUB套接字永远不会阻塞。请参阅socket reference这意味着如果无法发送消息,您将获得EAGAIN。我猜测没有任何连接用户。