2017-08-04 41 views
0

Rcently、私はOpenDDSによって同じサブネット内の2つのホストを通信することに成功しました。 はしかし、私は、パブリックネットワークやWANを介して他の二つのホストを伝えたいです。それは動作しません。 この問題を解決するにはどうすればよいですか?私は2つのホストを持っているOpenDDS:公衆ネットワーク(WAN)を介して2つのホストを通信する方法

は、ここに私のコミュニケーション的環境です。 ホストAは、AWS(アマゾンウェブサービス)で、ホストBは私のDestktopです。また、2つのホストがパブリックIPアドレスを持ち、ファイアウォールを無効にします。 telnetコマンドで特定のポート番号が利用可能かどうかを確認しました。このように:

$ telnet <HostA IP's> 12345 

そしてそれは良いconnetionです。

OpenDDS-3.11と$OpenDDS_HOME/tests/DCPS/Messengerの例を使用しました。ホストAで

$ DCPSInfoRepo -ORBListenEndpoints iiop://:12345 

を有効にする加入者は、このように動作:ホストBで

$ ./subscriber -DCPSConfigFile sub_multicast.ini 

ディレクトリは同じsubsceriberあり、その後、出版社は次のように動作します。

$ ./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 

何が間違っていましたか?

答えて

0

最後に問題を解決しました ディスカバリーサーバーのホストを変更し、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 
0

私は同じ質問に興味があります。私はAWSから私のアプリケーションまで同様の動作をさせたいと思っていました。

現在、ルータのNatの問題を解決するためにWebSocketを使用しています。私はローカルネットワークでdcpsInfoRepoを実行しています。しかし、私は異なるサブネット内のデバイスで発見の問題があります。マルチキャストがすべてのルータでサポートされているかどうかはわかりませんでした。したがって、TCP接続を使用します。

関連する問題