我在调用套接字的 .send()
函数时遇到问题,该函数在全局级别声明。
from nanomsg import Socket, PAIR, PUB
s2 = Socket(PAIR)
s2.connect('tcp://127.0.0.1:49234')
s2.send(b'connect')
def myfunc():
global s2
s2.send(b'Got here!')
myfunc()
print('closing socket')
s2.close()
在上面的示例中,myfunc()
中发送的数据永远不会到达接收套接字。我知道接收套接字有效,因为收到了全局级别的.send()
。
- 附录 -
只是想补充一点,我的实际应用程序是一个烧瓶询问的Web服务,用于自定义Alexa技能,我已经验证通过激活相应的Alexa自定义技能意图来调用myfunc()
。
答案 0 :(得分:1)
您可以检查小time.sleep(0.1)
是否有帮助。连接需要一段时间,并且套接字可能不会立即为.send()
准备好。
s2 = Socket(PAIR)
s2.connect('tcp://127.0.0.1:49234')
time.sleep(0.2)
s2.send(b'connect')