【发布时间】:2011-06-08 12:02:15
【问题描述】:
我目前正在研究机器人仿真环境。 可以通过网络连接控制/监控可以与虚拟世界交互的机器人。 对于整个网络通信(当然还有其他东西,例如线程),我们使用 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 专家? :-)
非常感谢
【问题讨论】:
-
好的,我已经搜索了更多,根据开发人员网站 (lse.sourceforge.net/io/aio.html) 的说法,套接字上的 aio 并没有真正实现。我还读到了一些关于 UDP 套接字的实现确实有问题的东西,但是我再也找不到该站点的链接了:-( 我们选择使用线程和阻塞同步方法,因为没有真正的收获(甚至根本没有)现在的 aio。我真的希望将来的某个时候会有更好的支持。