簡體   English   中英

OpenDDS:如何通過公用網絡(WAN)通信兩台主機

[英]OpenDDS: how to communicate two hosts through public network (WAN)

最近,我通過OpenDDS成功地在同一子網中通信了兩台主機。 但是,我想通過公共網絡或WAN通信其他兩台主機。 沒用 我怎么解決這個問題??

這是我的交流環境:

我有兩個主持人。 HostA是AWS(Amazon Web Service),Host B是我的Destktop。 另外,兩個主機具有公用IP地址並禁用防火牆。 我已經通過telnet命令檢查了特定的端口號是否可用。 像這樣:

$ telnet <HostA IP's> 12345

這是很好的連接。

我使用了OpenDDS-3.11和$OpenDDS_HOME/tests/DCPS/Messenger的示例。

在HostA中啟用

$ DCPSInfoRepo -ORBListenEndpoints iiop://:12345

訂戶的操作如下:

$ ./subscriber -DCPSConfigFile sub_multicast.ini

在HostB中

目錄是同一子目錄,然后發布者按以下方式操作:

$ ./publisher -DCPSInfoRepo <HostA's IP>:12345 -DCPSConfigFile pub_multicast.ini

發布者的返回錯誤消息在這里:

$ ./publisher -DCPSInfoRepo <HostA' IP>:12345 -DCPSConfigFile pub_multicast.ini
Starting publisher
(3074|140050504111936) NOTICE: using DCPSInfoRepo value from command option (overrides value if it's in config file).
Starting publisher with 1 args
(3074|140050504111936) EXCEPTION, ERROR: InfoRepoDiscovery::get_dcps_info: failed to resolve ior -
system exception, ID 'IDL:omg.org/CORBA/TRANSIENT:1.0'
OMG minor code (2), described as 'No usable profile in IOR.', completed = NO

(3074|140050504111936) ERROR: DomainParticipantFactoryImpl::create_participant, add_domain_participant returned invalid id.
publisher.cpp:66: main() ERROR: create_participant failed!
ERROR: InfoRepoDiscovery::~InfoRepoDiscovery - Exception caught during ORB shutdown: system exception, ID 'IDL:omg.org/CORBA/BAD_INV_ORDER:1.0'
OMG minor code (4), described as 'ORB has shutdown.', completed = NO

我做錯了什么??

我對同一問題感興趣。 我想從AWS到我的應用程序進行類似的運行。

當前正在使用websocket橋接路由器的Nat問題。 我正在本地網絡中運行dcpsInfoRepo。 但是我在不同子網中的設備中發現了問題。 我不確定所有路由器都支持多播。 因此使用tcp連接。

我終於解決了我的問題,只需更改Discovery服務器主機並使用rtps_uni.ini文件。 像這樣:

DCPSInfoRepo -ORBListenEndpoints iiop://:12345

訂戶方:

./subscriber -DCPSDebugLevel=5 -DCPSInfoRepo HostA:12345 -DCPSConfigFile rtps_uni.ini

發布者方面:

 ./publisher -DCPSInfoRepo HostA:12345 -DCPSConfigFile rtps_uni.ini

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM