2017-09-23 4 views
0

Javaで書かれたCORBAクライアントがポート11112のサーバAからの通知を受け取ります。今、私のサーバはファイアウォールの背後にあり、私のIPアドレスはNATの背後にあります。通知はもう受信されません。私はサーバーAが私の未登録のIPにメッセージを送り、それはネーティブなものを指しているはずだと思う... JavaでネーティブIPを指し示すはずのサーバーを指定する方法はありますか?NATの背後にあるCORBAクライアント

+0

あなたのクライアントはサーバーでもあるようです。 – EJP

+0

@EJPまず、クライアントはポート32100でIORファイルを使用してサーバーに接続し、ポート11112を介してメッセージを受信する通知サービスに加入します。 – abaraza

+0

最初に、サーバーがクライアント側から到達可能かどうかを確認します。そうであれば、クライアントがサーバー側から到達可能かどうかを確認します。あなたが書いたNATの背後にある場合は、ポート転送が有効になっていること、またはクライアントからの接続を再利用することを確認してください。これは、双方向IIOPと呼ばれています。しかし、どのORBを使用しているのかわかりません。 – tuergeist

答えて

0

解決策が見つかりました。有効なリスンアドレスが何であるかをORBに知らせる、いくつかのプロパティをクライアントに設定する必要があります。

Properties props = new Properties(); 
props.put("org.omg.CORBA.ORBInitialPort", "11112"); 
props.put("org.omg.CORBA.ORBInitialHost", "MyNatedHost"); 
ORB orb = ORB.init(args, props); 
関連する問題