ZBLOG

Each client must keep a list of locators associated to the servers to which it wants to link. Note that providing an unreachable locator will result in the client sending ping messages to that direction at regular intervals until it is connected ...

这段文字描述了客户端在连接到服务器时如何配置其定位器列表,以及一些相关的注意事项。下面是对内容的详细解释:

  1. 客户端定位器列表

    • 每个客户端必须保持一个与其希望连接的服务器相关联的定位器(locator)列表。
    • 这些定位器用于标识和访问相应的服务器。
  2. 不可达定位器的问题

    • 如果提供了一个无法访问的定位器,客户端将定期向该方向发送“ping”消息,直到它成功连接到与配置中的定位器列表中相同数量的服务器为止。
    • 这意味着即使某个服务器不可达,客户端仍会尝试建立连接,这可能导致网络资源的不必要消耗。
  3. C++代码示例解析: “`cpp Locator_t locator; // 默认定位器类型为 UDPv4 locator.kind = LOCATOR_KIND_UDPv4; // 设置使用UDPv4作为传输协议 IPLocator::setIPv4(locator, 192, 168, 1, 133); // 设置IP地址为192.168.1.133 locator.port = 64863; // 设置端口号为64863

DomainParticipantQos clientQos; clientQos.wire_protocol().builtin.discovery_config.m_DiscoveryServers.push_back(locator); “`

在上述代码中:

  • 创建一个名为locator的对象来存储要添加到客户端的定位器信息。
  • 将默认传输协议设置为UDPv4
  • 使用setIPv4()方法设置IP地址。
  • 指定端口号为64863
  • 最后,将这个配置好的定位器添加到客户端质量服务(DomainParticipantQos)的发现服务器列表中。这允许客户端知道要连接哪些特定的服务器。
  1. 逻辑端口说明
    • 除了物理端口,用户还可以在定位器中指定逻辑端口。如果逻辑端口参数留空,Fast DDS将自动分配一个与物理端口相等的逻辑端口,以便在需要时使用。这种行为与ROS_DISCOVERY_SERVER环境变量以及Fast DDS命令行工具实现的一致。

总结来说,这段文本提供了关于如何在客户机上配置服务器连接所需的信息,同时也强调了有关不可达地址潜在问题的重要性,以及有关逻辑和物理端口分配机制的一些细节。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=7226

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?