私はJava RMIではなく、同じピアの複数のインスタンスが同じマシン上に存在するアプリケーションのようなTorrent P2Pを作成しようとしています。これは、同じマシン上に登録された同じタイプの複数のリモートオブジェクトを持つことができる必要があることを意味します。 RMIレジストリは、レジストリが参照を返すべきオブジェクトのどれを区別することができないので、どのマシンにでもリモートオブジェクトの実装を1つしか持たせることができないようです。他のピアがそのリモートオブジェクトを公開していることを知っているIPとポートを指定するなど、レジストリをバイパスする方法はありますか?そうでない場合は、同じマシン上に同じオブジェクトの複数のインスタンスを作成する方法がありますか?これを助けてくれれば大いに感謝します...RMIレジストリを使用しないJava RMI
2
A
答えて
3
異なるポートで複数のrmiレジストリを起動するか、オブジェクトのインスタンスを別の名前で複数回バインドすることができます。しかし、最善の方法は、おそらくコード内のロジックを実行し、必要なときにいつも新しいリモートオブジェクトを返すことです。例えば。パラメータに依存:私はあなたがRMIを忘れるためにお勧めし
1
public MyRemoteObject connect(String name) throws java.rmi.RemoteException {
if("first".equals(name)){
return firstinstance;
}else if("new".equals(name)){
return new MyRemoteObject();
}
...
}
またはこのようなものが... - 私見このテクニックは、あなたのユースケースには適用されません。
シリアル化およびデシリアライゼーションロジックを含むネットワークプロトコルを自分自身で定義し、未処理のソケット接続でデータを送受信するために使用します。
+0
私はC#.NET Remotingに慣れているというあなたの提案に同意します。私は、Java RMIのオプションに類似したオプションがあると思いました。ソケットが最善の方法だと思われますが、私はそれらに精通していないので、この学校のプロジェクトは3日以内に予定されています。 (いいえ、私はちょうど私の最後の試み(C + +で)は、高レベルの言語を試して、動作しませんでした)procrastinateしなかったあなたの入力のためにあまりにもありがとう:) – SaxyTimmy
関連する問題
- 1. rmiレジストリを使用したjava rmiリモートオブジェクトホストマシンのipの決定
- 2. RMIレジストリが使用できないエラー
- 3. RMIレジストリおよびRMIを使用して不正な引数例外
- 4. 閉じるrmiレジストリ
- 5. Java - RMIレジストリを閉じるには?
- 6. 単一のRMIレジストリの使用
- 7. RMIレジストリとRMIサーバは異なるポート番号を使用していますか?
- 8. RMIレジストリの有効期間、GCなど
- 9. のJava RMIは、RMIで参照
- 10. - JavaのRMI
- 11. Java Spring RMIアクティベーション
- 12. Java RMI - クライアントタイムアウト
- 13. AndroidアプリケーションでJAVA RMIを使用する
- 14. クライアントポリシーファイルのRMI使用
- 15. Java RMIで不明なホスト
- 16. Java RMI - リモート展開
- 17. Java RMIサーバのシャットダウン
- 18. Java RMIの実装
- 19. Java RMI複数サーバー
- 20. Java RMI ClassCast例外
- 21. tictactoe java rmi connection refused
- 22. Java RMIの警告
- 23. Java RMIがレジストリに接続できません
- 24. Java RMI - オブジェクトを渡す
- 25. リモートオブジェクトをRMIレジストリにバインドしようとしたときに
- 26. .NETからJava RMIにアクセス
- 27. RMIでのJavaシリアル化
- 28. サーバーへのJava RMI接続
- 29. DockerコンテナのJava RMIサーバ
- 30. Java RMI複数サーバ/シングルクライアント
レジストリには、オブジェクトタイプごとのオブジェクトに制限はありませんが、バインド名ごとのオブジェクトには制限がありません。 morja推奨のような新しい名前を使用してください。 –