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

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

当客户端正在运行并连接时,该功能将保留。机器打开了所有传入和传出端口。

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

最佳答案

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

关于c++ - ZMQ在Publisher套接字上产生EAGAIN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26456509/

10-12 14:56
查看更多