【发布时间】:2018-04-02 18:55:37
【问题描述】:
我正在使用RTI DDS 5.2.3.17 并想获取我正在向其发送消息的远程DataReader/Subscriber 的IP 地址,以添加到一些日志消息中。
我该怎么做?我在形成要做什么的逻辑时遇到了一些麻烦?
【问题讨论】:
标签: ip publish-subscribe datareader data-distribution-service
我正在使用RTI DDS 5.2.3.17 并想获取我正在向其发送消息的远程DataReader/Subscriber 的IP 地址,以添加到一些日志消息中。
我该怎么做?我在形成要做什么的逻辑时遇到了一些麻烦?
【问题讨论】:
标签: ip publish-subscribe datareader data-distribution-service
针对您的问题here 描述的使用 SampleInfo 的机制将无法用于获取 DataReaders 的 IP 地址
根据情况,最简单的方法可能是访问install a listener on your DataWriter 并检查last_subscription_handle parameter when the DataWriterListener’s on_publication_matched() callback is invoked。正如 RTI 知识库文章 Accessing the GUID of Connext DDS Entities 中所述,实例句柄本质上是另一个供您检查的 GUID。
如果您需要跟踪许多读者,订阅用于发现的 BuiltinTopics 可能会更容易,如同一篇知识库文章中所述。但这需要更多的工作。
同样,所有这些都假设您正在寻找 IPv4 地址。另请注意,这不是公开公开的机制,因此将来可能会发生变化。当您的应用程序显式设置其 GUID 时,所有这些都会中断。
【讨论】: