远程访问对象java实现

时间:2021-06-25 14:36:26

服务端:

定义远程接口:

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();
r = LocateRegistry.createRegistry();
//也可以用它注册远程服务
//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();
}
}
}