java 远程方法调用

package rmimethod;

import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;

public class Service {

  private static final String IP = "127.0.0.1";
  private static final int PORT = 9456; 
  private static final String REMOTE_NAME = "userDao";   
  private static final String REMOTE_URL = "rmi://"+IP+":"+PORT+"/"+REMOTE_NAME;
 
  public static void main(String[] args) throws RemoteException, MalformedURLException, AlreadyBoundException, InterruptedException {
   Hello hello = new ChinaHello();    //实例化对象 
   LocateRegistry.createRegistry(PORT);    //注册端口   
   Naming.bind(REMOTE_URL, hello);       //绑定远程服务对象   
   System.out.println("远程"+REMOTE_NAME+"启动成功...."); 
        Thread.currentThread().sleep(100000);
 }

}

 

package rmimethod;

import java.rmi.Remote;

public interface Hello extends Remote{
   String say(String name);
}

 

public class Client {
 
 public static void main(String args[]) throws MalformedURLException, RemoteException, NotBoundException{
  Hello userDao = (Hello) Naming.lookup("rmi://127.0.0.1:9456/userDao");                 //调用远程服务的方法  
  String name=userDao.say("刘明"); 
  System.out.println(name);
 }
}

public class ChinaHello implements Hello,Serializable{

 public String say(String name) {
  
  return "你好,"+name;
 }

}

 

你可能感兴趣的:(java 远程方法调用)