1

我目前正在研究机器人仿真环境。可以通过网络连接控制/监控可以与虚拟世界交互的机器人。对于整个网络通信(当然还有其他东西,例如线程),我们使用 ACE 库。我现在遇到的问题是,在我看来,异步 UDP 部分已损坏。当运行 ACE 附带的测试程序“test_udp_proactor -h localhost -p 55555”时,我总是会得到错误代码 89(需要目标地址)。到目前为止,这是我尝试过的,但没有任何帮助:

  • 重新编译更新/不同版本的 ACE
  • 修改test_udp_proactor的代码,重新创建一个类似的程序
  • 更改环境(具有 32 位 CPU 和 Ubuntu 9.10 的不同 PC)

使用同步方法时,一切正常,因此网络硬件/软件没有错误。

我在谷歌和这个网站上搜索了几个小时/几天,似乎没有其他人有这个问题!至少我找不到。

我现在真的很沮丧,因为据我了解,ACE真的很成熟可靠。虽然有些人非常喜欢它的设计。它用于航空航天界,其中可靠性和实时性是必须的!我不敢相信 ACE 不支持异步。UDP 通信和/或没有其他人发现这一点。

有人可以用 test_udp_proactor 为我运行一个简单的测试来验证这种行为吗?我们必须使用具有实时功能的系统,因此 Windows 不是一个选项...

任何其他提示和/或提示,最好来自 ACE 专家?:-)

非常感谢

4

1 回答 1

0

尝试在系统调用级别查看问题。使用 strace 查看正在发送到内核的系统调用和值以及这些系统调用返回的错误代码。

您可能会很快发现您的问题。

于 2011-01-13T18:59:25.477 回答