我已经使用Python SDK中的一个简单程序 say.py。 Aldebaran Nao连接到网络在IP 172.26.96.164无法在Aldebaran Nao上运行代码
from naoqi import ALProxy
pr = ALProxy("ALTextToSpeech", "172.26.96.164", 9559)
pr.say("Hello, You are awesome !")
该代码运行良好。但是,当我开始闹起的本地版本的计算机
> & 'C:\Program Files (x86)\Aldebaran\Choregraphe 1.12.5.3\bin\naoqi-bin.exe'
代码在用下面的错误运行 say.py停止。
PS C:\Users\admin\Desktop\nehchal> python say.py
[INFO ] Starting ALNetwork
[ERROR] Connection failed ! Port 54010 is already in use. Are you already running NaoQi? Use --broker-port option to specify a different port.
[INFO ] Stopping ALNetwork
[INFO ] Exit
Traceback (most recent call last):
File "say.py", line 2, in <module>
pr = ALProxy("ALTextToSpeech", "172.26.96.164", 9559)
File "C:\Python27\lib\site-packages\naoqi.py", line 230, in __init__
inaoqi.proxy.__init__(self, args[0], args[1], args[2])
File "C:\Python27\lib\site-packages\inaoqi.py", line 322, in __init__
this = _inaoqi.new_proxy(*args)
RuntimeError: ALBroker::runBroker
Port 54010 is not free. Another broker is using this port.
有人可以请解释这个错误究竟是什么意思?如何知道谁在使用这个端口?如何释放端口或如何使用备用端口?
更新: 我认为有一些获得港口的竞争条件。我通过在while循环中使用来解决问题,如果失败,它会再次尝试。现在,一般通过尝试最多4-5次进行连接。 –
2013-03-15 21:35:46