【问题标题】:How to connect two machines using the Messenger example?如何使用 Messenger 示例连接两台机器?
【发布时间】:2019-11-03 01:57:06
【问题描述】:

我一直在尝试连接两台机器:都是虚拟机,一台是 Xubuntu,另一台是 Ubuntu。我对 OpenDDS 也很陌生,但最好的方法 - 或者看起来 - 是使用 .ini 文件。 但是,当我尝试连接时,我似乎无法更改发现服务器,因为默认值为 localhost:12345。有人可以帮助我,以便我可以正确配置文件吗?

我尝试过使用 dds_udp_conf.ini 和 tcp 之一,但它似乎不起作用。 另外,我尝试使用单播,但失败了。

ini 文件:

[常见]

DCPSDebugLevel=0

DCPSInfoRepo=corbaloc::localhost::12345/DCPSInfoRepo

DCPSGlobalTransportConfig=config1

[配置/配置1]

运输=udp1

[传输/udp1]

transport_type=udp

我使用以下语法: ./publisher -DCPSConfigFile conf.ini

好吧,发布者和订阅者应该连接,但发布者发送了一些错误消息,而在另一个 VM 中没有任何反应。 我似乎失败了,因为我无法更改本地主机中的配置以进行发现。 当我尝试使用与 localhost:12345 不同的参数运行服务器时,它也总是发送错误消息。

【问题讨论】:

    标签: c++ opendds


    【解决方案1】:

    如果发布者和订阅者都被告知 InfoRepo 在本地主机上运行,​​我不清楚你在哪里运行 InfoRepo。无论如何,我都会推荐使用 RTPS 发现和传输。它很容易设置,因为参与者可以通过网络的多播找到彼此而无需 InfoRepo。此配置是将 RTPS 与 OpenDDS 一起使用的最简单方法:

    [common]
    DCPSDefaultDiscovery=DEFAULT_RTPS
    DCPSGlobalTransportConfig=$file
    
    [transport/the_rtps_transport]
    transport_type=rtps_udp
    

    只要把这个给两个程序,它们就会找到彼此。如果不是,则意味着您的虚拟机上的网络设置方式可能有问题。

    【讨论】:

    • 嗨!正如你所说,使用 InfoRepo 还不清楚,所以我尝试使用 RTPS Discovery,它成功了!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2022-12-12
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    相关资源
    最近更新 更多