15.2.1. Configuring Initial Peers
在这一部分中,我们讨论了如何配置初始对等体列表,以便在 Fast DDS 中有效地进行发现和通信。详细的初始对等体列表描述及其配置方法可以参考 “Initial peers” 文档。在此,为了方便起见,提供一个示例,展示如何在域 0 中配置位于主机 192.168.10.13 上、参与者 ID 为 1 的单个初始对等体。
注意事项
需要注意的是,这里使用的端口号并不是任意选择的,因为发现端口是由 RTPS v2.2 标准定义的。如需了解这些标准端口号,可以参考 “Well Known Ports” 文档。
如果参与者 ID 不明确,则应将 TransportDescriptorInterface 的 maxInitialPeersRange
设置为至少预期的最大 DomainParticipants 数量,以确保发现和通信能够顺利进行。
C++ 示例代码
DomainParticipantQos qos;
// 配置一个初始对等体,位于主机 192.168.10.13。
// 该端口号对应于参与者 ID `1` 和域 `0` 的元流单播的知名端口。
Locator_t initial_peer;
IPLocator::setIPv4(initial_peer, "192.168.10.13");
initial_peer.port = 7412; // 使用知名端口7412
qos.wire_protocol().builtin.initialPeersList.push_back(initial_peer);
上面的 C++ 示例代码演示了如何通过设置一个初始对等体来配置 DomainParticipantQos
对象。首先指定了对等体的 IP 地址,然后将相应的端口(7412)分配给这个对等体,并将其添加到初始对等体列表中。
XML 配置示例
<?xml version="1.0" encoding="UTF-8" ?>
<profiles xmlns="http://www.eprosima.com">
<participant profile_name="initial_peers_example_profile" is_default_profile="true">
<rtps>
<builtin>
<initialPeersList>
<locator>
<udpv4>
<address>192.168.10.13</address>
<port>7412</port>
</udpv4>
</locator>
</initialPeersList>
</builtin>
</rtps>
</participant>
</profiles>
上述 XML 示例展示了如何在 XML 配置文件中指定初始对等体的信息。它包含了与前述 C++ 示例相同的信息,即 IP 地址和端口。
总结
通过以上步骤,我们可以轻松地配置 Fast DDS 的初始对等体列表。这对于确保在 WiFi 等不稳定网络环境中的可靠通信至关重要。无论是通过编程方式还是 XML 配置,都能有效实现此目的,从而优化参与者之间的数据交换流程。
内容由零声教学AI助手提供,问题来源于学员提问