无法从函数中访问全局套接字

2024-04-29 14:27:17 发布

您现在位置:Python中文网/ 问答频道 /正文

调用在全局级别声明的套接字的.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()被接收。你知道吗

--附录--

我只是想补充一下,我的实际应用程序是一个定制Alexa技能的web服务,我已经验证了myfunc()是通过激活相应的Alexa定制技能意图来调用的。你知道吗


Tags: 函数fromimportsend声明技能connectsocket
1条回答
网友
1楼 · 发布于 2024-04-29 14:27:17

你可以检查一个小的time.sleep(0.1)是否有用。连接需要一段时间,而且套接字可能无法立即为.send()做好准备。你知道吗

    s2 = Socket(PAIR)
    s2.connect('tcp://127.0.0.1:49234')
    time.sleep(0.2)
    s2.send(b'connect')

相关问题 更多 >