基于OpenDDS进行过N多应用开发,也遇到了一些坑(包括功能性、可维护性等):
- Windows平台上,vs2005、vs2010编译的dll不能相互调用,出现异常崩溃的问题——其他人也反馈,有这种现象
- opendds/ace都是vs2010的动态库、及exe(dcpsinforepo.exe)
1)vs2005上编译的sub/pub,在vs2010机器环境下,运行异常
在vs2005机器环境下,运行异常
2)vs2010上编译的sub/pub,在vs2010机器环境下,运行正常
在vs2005机器环境下,运行正常
release版的程序,调用OpenDDS的debug的dll,有时候也会崩溃
Linux平台上,都是基于g++编译,只要Linux内核兼容,调用、运行都没有问题
- OpenDDS中部分日志输出的解析
(25906|47803886182000) WARNING:open_appropriate_socket_type: socket open not successful:errno: 98
(25906|47803886182000) WARNING:open_appropriate_socket_type: socket open not successful:errno: 98
原因:单机上,多个或单个Sub/Pub程序中的多个域参与者,绑定在同一地址的同一端口,重复绑定失败了