15.1.3. TCP Communication with Discovery Server
Fast DDS Discovery Server 是一种客户端-服务器发现机制,其中服务器 DomainParticipant 作为通信的中心点。它收集并处理由客户端 DomainParticipants 发送的元流量,然后在其余客户端之间分发适当的信息。关于该功能的扩展描述可以在 Discovery Server Settings 中找到。
使用 TCP 通信和 Discovery Server
为了使 TCP 通信与 Discovery Server 一起工作,服务器参与者和客户端参与者都需要使用自定义用户传输层。配置服务器参与者有多种方法,使用 Fast DDS CLI 是最快捷的解决方案。
Fast DDS CLI 配置
可以通过使用参数 -t
和 -q
来配置其在 TCP 传输层上工作,以设置 IP 地址和 TCP 端口。环境配置完成后,可以使用以下命令实例化一个监听 localhost 和端口 12345 的服务器(参见 CLI)。
fastdds discovery -t 127.0.0.1 -q 12345
配置客户端参与者
客户端参与者可以通过使用 ROS_DISCOVERY_SERVER
环境变量(参见 ROS_DISCOVERY_SERVER)或手动设置进行配置。
使用环境变量配置
要将客户端参与者配置为通过 ROS_DISCOVERY_SERVER
环境变量与 Discovery Server 在 TCP 传输层上通信,需要使用前缀 TCPv4
。以下命令可用于配置该变量,以建立一个使用 TCP 通信并连接到本地主机和端口 12345 的客户端。
export ROS_DISCOVERY_SERVER=TCPv4:[127.0.0.1]:12345
总结
通过上述步骤,可以轻松地设置 Fast DDS Discovery Server 使用 TCP 通信。这种机制允许多个 DomainParticipants 在同一网络中有效地发现彼此,并共享相关信息,从而促进高效的数据交换与服务发现。在实际应用中,确保正确配置 IP 地址和端口以适应网络环境是非常重要的。
内容由零声教学AI助手提供,问题来源于学员提问