代码中的多播地址未在DDS代码中设置

时间:2016-10-19 15:56:14

标签: java publish-subscribe multicast qos data-distribution-service

我的DDS计划java 8使用RTI DDS 5.2.0

,我有以下代码
DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT.
    discovery.initial_peers.add("239.255.0.50");
DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT.
    discovery.initial_peers.add("4@builtin.udpv4://127.0.0.1");
DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT.
    discovery.initial_peers.add("builtin.shmem://");
DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT.
    discovery.multicast_receive_addresses.clear();
DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT.
    discovery.multicast_receive_addresses.add("239.255.0.50");

初始对等设置适用于DDS代码,但是当我使用该行设置multicast_receive_addresses时,地址永远不会被设置并保持默认为默认多播地址。

为什么我的多播地址没有设置?

2 个答案:

答案 0 :(得分:2)

尝试set_default_participant_qos(DomainParticipantQos qos)方法将修改后的qos设置为新的默认qos。见RTI Connext Java API

答案 1 :(得分:1)

multicast_recieve_address未设置,因为DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT只是一个标记值,其唯一目的是指示create_participant()使用默认QoS - 您可以使用{{3}设置}或set_default_participant_qos(另见in XML)。您不应修改DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT

您还可以创建新的DomainParticipantQos对象,对其进行配置,然后将其传递给create_participant()。示例this example