草庐IT

ZMQ_DONTWAIT

全部标签

c++ - 即使在上下文终止后 ZMQ recv() 仍在阻塞

我已尽力按照ZMQterminationwhitepaper中的说明进行操作,但到目前为止我失败得很惨。我有一个父类,它生成一个监听器线程(使用win32-pthreads)。根据白皮书,终止时,我应该设置_stopped标志,删除上下文,这反过来会调用zmq_term()并释放阻塞接收()。相反,我得到的是:调用delete_zmqContext会使应用程序崩溃(可能是段错误)用zmq_term(_zmqContext)替换delete不会释放阻塞recv()我正在添加部分代码示例,该示例很长,因为我不确定哪部分可能很重要。AsyncZmqListener.hpp:classAsyn

c++ - ZMQ C++ Req 到路由器问题

我在我的网络层使用ZeroMQ,到目前为止一切正常,除了ROUTER套接字。特别是我在ROUTER上收到了预期的消息,但是当我尝试将答案发送回我的REQ套接字时,该消息从未收到过。这是我编写的一个相对简单的测试,它尝试向ROUTER发送“HELLO”消息并期望消息返回。这里是客户端代码:try{zmq::context_tmyContext;zmq::socket_treqSocket(myContext,ZMQ_REQ);reqSocket.setsockopt(ZMQ_IDENTITY,"REQ",3);reqSocket.connect(gpRouterAddress);//re

javascript - php ZMQ 通过 http 推送集成

我正在尝试使用php和nativezmq实现推送集成。我已成功将消息发送到服务器,但我的问题是我无法使用jsWebsocket()将消息推送到浏览器。我说WebSocketconnectionto'ws://127.0.0.1:8080/'failed:ErrorduringWebSockethandshake:Invalidstatusline这是我给客户的代码:connect("tcp://localhost:5555");$push->send($data);}if(isset($_POST["username"])){$envelope=array("from"=>"clien

c++ - ZMQ_DONTWAIT 标志不起作用?

我在我的应用程序中使用ZeroMQ进行网络连接,手册指出通过向send中的flags参数提供ZMQ_DONTWAIT标志或recv导致函数不阻塞线程。然而,它在我的情况下不起作用:std::cout这打印:abcdab我做了一个小类来让事情变得更简单:客户端类(为了简化,从所有“未使用”的东西中剥离出来)classclient{public:client(){}inlineboolinit(unsignedshortthreads=1){Running=true;context=zmq_init(threads);if(context==NULL)returnfalse;socket=

c++ - 在 Ubuntu 12.04 32 位上安装和编译 ZeroMQ/ZMQ/0MQ

我真的很想将0MQ用于个人项目,但我很难在安装后进行编译这是我的做法:####Installprerequisiteswithouterrors:####$sudoapt-getinstalllibtoolautoconfautomakeuuid-devbuild-essential####Get0MQ:####$cd~/Downloads$wgethttp://download.zeromq.org/zeromq-3.2.1-rc2.tar.gz$tar-xvzfzeromq-3.2.1-rc2.tar.gz####Install0MQwithouterrors:####$cdzer

c++ - zmq-cpp : recv() waits for data despite ZMQ_DONTWAIT being set

我正在尝试使用ZMQ_DONTWAIT标志通过ZeroMQ实现非阻塞接收方法,但是recv()的行为就像在没有标志的情况下被调用:autostart=std::chrono::steady_clock::now();autohave_data=sock_->recv(&reply,ZMQ_DONTWAIT);autoduration=std::chrono::duration_cast(std::chrono::steady_clock::now()-start).count();std::coutsock_是一个zmq::socket_t实例化为REQ套接字。在这种情况下,have_

windows - ZMQ::LibZMQ3 和草莓 perl

我正在尝试在strawberryperl上安装ZMQ::LibZMQ3,但在安装此模块时收到以下错误消息,我的zmq库和包含位于C:\ProgramFiles\ZeroMQ3.2.2下:cpan>installZMQ::LibZMQ3Runninginstallformodule'ZMQ::LibZMQ3'RunningmakeforD/DM/DMAKI/ZMQ-LibZMQ3-1.09.tar.gzChecksumforC:\strawberry\cpan\sources\authors\id\D\DM\DMAKI\ZMQ-LibZMQ3-1.09.tar.gzokScanningc

python - 使用 ZMQ 时,从 Ubuntu 16.04 到 Windows 7 的出站 TCP 流量被阻止

我在服务器和用Python编写的客户端之间有一个ZeroMQPUB/SUB连接。服务器发送消息,客户端打印出来。这些程序在同一台计算机上运行良好(Ubuntu16.04或Windows7;都可以运行)。当服务器在Windows7机器上并且客户端在Ubuntu16.04机器上时,它们也可以工作。但是,如果服务器在Ubuntu16.04机器上,则Windows7机器上的客户端无法连接到它。此外,当我在两台独立的Windows7机器之间移动客户端和服务器程序时,也没有通信问题。有人知道问题出在哪里吗?这是客户端代码:#BasedoncodefoundonthisStackOverflowpo

tcp - 使用 ZeroMQ ZMQ_STREAM 作为 tcp 客户端。为什么我会收到额外的信息?

我有一个使用ZeroMQ做各种事情的应用程序,我还想将它用作其他外部连接的tcp客户端。目前,如果外部tcp-server发送数据,客户端会收到5字节id、0字节、5字节,然后是实际消息。如何让ZeroMQ不发送这些东西?#include#include#include#include#include#include#includeintmain(){void*mpSocketContext=zmq_ctx_new();/*CreateZMQ_STREAMsocket*/void*mpSerialSocket=zmq_socket(mpSocketContext,ZMQ_STREAM)

node.js - ZMQ 发布/订阅订阅

关于ZMQ的发布/订阅功能,我无法弄清楚如何订阅一个特别的“channel”。这是发布者:varzmq=require('zmq');varpub=zmq.socket('pub');pub.bindSync('tcp://127.0.0.1:5555');setInterval(function(){pub.send('pubmsg');},500);这是订阅者:varsub=zmq.socket('sub');sub.connect('tcp://127.0.0.1:5555');sub.subscribe('');//hereinliesthequestionsub.on('me