2011-01-13 70 views
1

我目前正在研究機器人仿真環境。 可以通過網絡連接控制/監控可以與虛擬世界互動的機器人。 對於整個網絡通信(當然還有其他的例如線程),我們使用ACE庫。 我現在的問題是,在我看來,異步UDP部分已損壞。 運行ACE附帶的測試程序「test_udp_proactor -h localhost -p 55555」時,我將始終得到錯誤代碼89(需要目標地址)。 到目前爲止,這是我嘗試過,但沒有任何幫助:ACE和異步UDP通信

  • 重新編譯新的/不同版本的ACE
  • 修改test_udp_proactor的代碼,再造一個類似的計劃
  • 改變環境(不同PC與32位CPU和Ubuntu 9.10)

當使用同步方法時,一切正常,所以網絡硬件/軟件沒有錯誤。

我搜索谷歌和本網站現在幾小時/天,似乎沒有人有這個問題!至少我找不到它。

我現在真的很沮喪,因爲據我瞭解,ACE真的很成熟可靠。雖然有些人非常喜歡它的設計。 它被用於航空航天領域,其中可靠性和實時性是必須的!我不敢相信ACE不支持異步。 UDP通信和/或其他人沒有發現。

有人可以用test_udp_proactor爲我運行一個簡單的測試來驗證這種行爲嗎? 我們必須使用一個實時系統,所以Windows不是一個選項...

任何其他提示和/或提示,最好來自ACE大師? :-)

非常感謝您

+0

好的我一直在尋找更多,根據開發人員網站(http://lse.sourceforge.net/io/aio.html)插座上的aio沒有真正實現。我還讀到了關於實現的一些問題,當涉及UDP套接字時,但我找不到鏈接: - (我們選擇使用線程和阻塞同步方法,因爲沒有真正的增益(或者根本沒有),我真的希望未來能有更好的支持 – siddian 2011-01-14 16:26:16

回答

0

嘗試看問題在系統調用級別。使用strace來查看哪些系統調用和值被髮送到內核,以及那些系統調用返回的錯誤代碼。

您可能會很快發現您的問題。

+0

感謝您的回覆 我真的很想深入到aio庫的深處; ),可惜我沒有時間這樣做。仿真的其他部分仍然需要實現,這就是爲什麼我們決定使用線程並在稍後的時間點處理這個問題的原因。 – siddian 2011-01-14 16:30:35