Python nng至pynng发布/订阅。客户未收到任何消息

Python nng至pynng发布/订阅。客户未收到任何消息,python,c++,nanomsg,pynng,Python,C++,Nanomsg,Pynng,我有以下服务器(C++): 我不明白为什么从来没有消息到达客户。我已经设置了主题和recv_max_size,但仍然没有消息到达客户端。 我现在做错什么了 Q:“我现在做错了什么?” 您碰巧盲目地假设事情的发生方式与您的代码不尝试验证的方式非常相似。旧的汇编程序狼群在开始编写代码之前,通常会声明#不假定任何内容 著名的AMQP/ZeroMQ福音传道者Pieter Hintjens(nanomsg/nng的哥哥)使用了assert-s中的显式POSACK-s: if ( ( aRetCODE =

我有以下服务器(C++):

我不明白为什么从来没有消息到达客户。我已经设置了主题和recv_max_size,但仍然没有消息到达客户端。 我现在做错什么了

Q:“我现在做错了什么?”

您碰巧盲目地假设事情的发生方式与您的代码不尝试验证的方式非常相似。旧的汇编程序狼群在开始编写代码之前,通常会声明
#不假定任何内容

著名的AMQP/ZeroMQ福音传道者Pieter Hintjens(nanomsg/nng的哥哥)使用了
assert
-s中的显式POSACK-s:

if ( (  aRetCODE = nng_pub0_open( &sock ) ) != 0 ) {
        fatal( "nng_pub0_open",
                aRetCODE );
}
assert( aRetCODE == 0 && "EXC: Pub0 socket failed to instantiate" );

if ( (  aRetCODE = nng_listen( sock, url.c_str(), NULL, 0 ) ) < 0 ) {
        fatal( "nng_listen",
                aRetCODE );
}
assert( aRetCODE == 0 && "EXC: Pub0 socket failed to .listen()" );
很高兴为您的项目使用
nng
/
pynng

Q:“我现在做错了什么?”

您碰巧盲目地假设事情的发生方式与您的代码不尝试验证的方式非常相似。旧的汇编程序狼群在开始编写代码之前,通常会声明
#不假定任何内容

著名的AMQP/ZeroMQ福音传道者Pieter Hintjens(nanomsg/nng的哥哥)使用了
assert
-s中的显式POSACK-s:

if ( (  aRetCODE = nng_pub0_open( &sock ) ) != 0 ) {
        fatal( "nng_pub0_open",
                aRetCODE );
}
assert( aRetCODE == 0 && "EXC: Pub0 socket failed to instantiate" );

if ( (  aRetCODE = nng_listen( sock, url.c_str(), NULL, 0 ) ) < 0 ) {
        fatal( "nng_listen",
                aRetCODE );
}
assert( aRetCODE == 0 && "EXC: Pub0 socket failed to .listen()" );

很高兴为您的项目使用
nng
/
pynng

我发现了问题所在。这是因为另一个nng发布服务器正在同一个端口上运行。为什么尝试绑定到已占用的地址/端口时没有引发错误?我认为您只需要将检查从
nng\u listen(…)<0
更改为
nng\u listen(…)!=0
<代码>nng_listen
在无法绑定时会返回错误代码。我发现了问题所在。这是因为另一个nng发布服务器正在同一个端口上运行。为什么尝试绑定到已占用的地址/端口时没有引发错误?我认为您只需要将检查从
nng\u listen(…)<0
更改为
nng\u listen(…)!=0
<代码>nng_listen
在无法绑定时返回错误代码。
if ( (  aRetCODE = nng_pub0_open( &sock ) ) != 0 ) {
        fatal( "nng_pub0_open",
                aRetCODE );
}
assert( aRetCODE == 0 && "EXC: Pub0 socket failed to instantiate" );

if ( (  aRetCODE = nng_listen( sock, url.c_str(), NULL, 0 ) ) < 0 ) {
        fatal( "nng_listen",
                aRetCODE );
}
assert( aRetCODE == 0 && "EXC: Pub0 socket failed to .listen()" );
assert rc == 0, "INF: some condition was not met for ( %r )" % someVariableNAME