远程访问对象java实现

服务端:

定义远程接口:

package com.my.rmi;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Impl extends Remote{
public String name() throws RemoteException;
}

 实现接口:

package com.my.rmi;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class RmtImpl extends UnicastRemoteObject implements Impl{
	
	private int i;
	
	public RmtImpl(int i) throws RemoteException {
		super();
		this.i = i;
	}
	public RmtImpl() throws RemoteException{
	}
	public String name() throws RemoteException{
		return "test"+20*i;
	}
}

注册远程对象:

package com.my.rmi;

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class rmi {
public static void main(String[] args) {
          Registry r = null ;
          try {
    RmtImpl s = new RmtImpl(25);
    r = LocateRegistry.createRegistry(50000);
                //也可以用它注册远程服务
             //Naming.rebind("rmi://192.168.6.66:50000/mytest", s);
    r.rebind("mytest", s);
    } catch (Exception e1) {
        e1.printStackTrace();
    }
}
}

 客户端:

package com.my.rmi;

import java.rmi.Naming;

public class ClientRMI {
public static void main(String[] args) {
	try {
	Impl oo = (Impl)Naming.lookup("rmi://192.168.6.66:50000/mytest");
	System.out.println(oo.name());
	} catch (Exception e) {
		e.printStackTrace();
	}
	}
}
原文地址:https://www.cnblogs.com/wbjgogogo/p/5383302.html