[解決済み] 使用中のリモートメソッド呼び出しポート
2022-02-13 09:19:59
質問事項
RMIでサーバ、クライアントのようなプログラムを作りました。しかし、コマンドプロンプトからrmiregistryを起動した後、私のサーバーを実行するたびに、ポートがすでに使用されているエラーがスローされます。rmiregistryを起動したのは私一人です。netstatで確認しました。
サーバーコード
public class Server implements Runnable, Linker{
private static Server server = null;
private static Linker l = null;
private String name = null;
public Server(){}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void run(){
while(!("Andy").equalsIgnoreCase(name)){
}
}
public static void createStub(){
try{
server = new Server();
l = (Linker) UnicastRemoteObject.exportObject(server, 1099);
Registry registry = LocateRegistry.getRegistry();
registry.bind("Link", l);
System.out.println("Ready");
}
catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
createStub();
Thread t = new Thread(server);
}
}
クライアントコードです。
public class Client implements Runnable{
private Scanner sc = new Scanner(System.in);
private Linker linker = null;
public void loadStub(){
try{
Registry registry = LocateRegistry.getRegistry(1099);
linker = (Linker) registry.lookup("Link");
}catch(Exception e){
}
}
public void run(){
String ip = null;
while(sc.hasNext()&&!(ip = sc.nextLine()).equalsIgnoreCase(":q")){
try {
linker.setName(ip);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String...args){
Client client = new Client();
client.loadStub();
Thread t = new Thread(client);
t.start();
}
}
例外です。
java.rmi.server.ExportException: Port already in use: 1099; nested exception is:
java.net.BindException: Address already in use: JVM_Bind
解決方法は?
その
rmiregistry
は自分の処理でポート1099を使用しているので、自分の処理で使用することはできません。どちらかです。
-
同じプロセスでレジストリを起動する。
LocateRegistry.createRegistry()
(望ましい)。 - 別のポートでオブジェクトをエクスポートします。
-
を起動します。
rmiregistry
を1099以外の別のポートに設定してください。
関連
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み】非閉鎖文字リテラルエラー
-
[解決済み】Eclipseで「公開型 <<classname>> は独自のファイルで定義する必要があります」エラー【重複あり
-
[解決済み】文字列中の � を置換する方法
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】リンクリストの負の値の数でnegativeCntrを代入する
-
[解決済み】エラー:'if'のない'else'エラー
-
[解決済み】"比較メソッドはその一般契約に違反する!"
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み】 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver [重複]。
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】Eclipseで「JUnitテストが見つかりませんでした。
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。