在 RTI DDS 上获取 DataReader/Subscriber 的 IP 地址?

Get IP Address of DataReader/Subscriber on RTI DDS?

我正在使用 RTI DDS 5.2.3.17 并且想要获取我正在向其发送消息的远程 DataReader/Subscriber 的 IP 地址,以添加到一些日志消息中。

我该怎么做我在形成要做什么的逻辑时遇到了一些困难?

针对您的问题 描述的机制,使用 SampleInfo,不适用于获取 DataReaders 的 IP 地址

根据具体情况,最简单的方法可能是 install a listener on your DataWriter and inspect the last_subscription_handle parameter when the DataWriterListener’s on_publication_matched() callback is invoked. As explained in the RTI Knowledge Base article Accessing the GUID of Connext DDS Entities,实例句柄本质上是供您检查的另一个 GUID。

如果您有许多需要跟踪的读者,订阅用于发现的 BuiltinTopics 可能会更容易,如同一篇知识库文章中所述。不过,这是更多的工作。

同样,所有这些都假设您正在寻找 IPv4 地址。另请注意,这不是公开的机制,因此将来可能会发生变化。当您的应用程序明确设置其 GUID 时,所有这一切都会中断。