「java開発」RMI (Remote Method Invocation)を使うメモ

1.インタフェースを定義する
package com.arkgame.server;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface CftServer extends Remote{

int add(int a,int b)throws RemoteException;

}

2.インタフェースを実現する
package com.arkgame.impl;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import com.arkgame.server.CftServer;

public class ServerImpl extends UnicastRemoteObject implements CftServer {
public ServerImpl() throws RemoteException {

}

public int add(int a, int b) {

return a+b;

}

}

3.リモートオブジェクトをレジストリサーバに登録する

package com.arkgame.host;
import com.arkgame.impl.ServerImpl;
import com.arkgame.server.CftServer;
import java.rmi.Naming;

import java.rmi.registry.LocateRegistry;

public class Host {

public static void main(String[] args)throws Exception

{

LocateRegistry.createRegistry(1009);

CftServer cftServer = new ServerImpl();

Naming.rebind(“//172.17.2.100:1009/cftServer” , cftServer);

}

}

4.クライアントからリモートオブジェクトを参照する

package com.arkgame.client;

import java.rmi.Naming;

import com.arkgame.server.CftServer;

public class Client {

public static void main(String [] args)throws Exception

{

CftServer cftServer = (CftServer)Naming.lookup(“//172.17.2.100:1009/cftServer”);

System.out.println(cftServer.add(7, 8));

}

}