2013-03-09 103 views
1

我已經使用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. 

有人可以請解釋這個錯誤究竟是什麼意思?如何知道誰在使用這個端口?如何釋放端口或如何使用備用端口?

+0

更新: 我認爲有一些獲得港口的競爭條件。我通過在while循環中使用來解決問題,如果失敗,它會再次嘗試。現在,一般通過嘗試最多4-5次進行連接。 – 2013-03-15 21:35:46

回答

0

您應該能夠通過提示使用netstad命令查看是否/以及正在使用端口。

1

看看鬧起命令行選項:

  • -p [--broker端口] ARG(= 9559)端口的服務器的,默認爲9559

  • --pport ARG (= 0)父代理程序的端口,默認爲否( parent(0))。

相關問題